작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

배치 프로그램을 주기적으로 데스크톱 컴퓨터에서 실행해야 할 상황이 발생하였다.

리눅스 서버가 있다면 crontab으로 쉽게 실행이 가능하지만 사용 중인 OS가 windows10이라 작업 스케줄러를 활용하기로 하였다.

작업 스케줄러 실행

작업 스케줄러를 실행하려면

1. 좌측 하단 시작메뉴->Windows 관리 도구->작업 스케줄러

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

2. 시작메뉴->검색바에 작업 스케줄러

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

3. 윈도우키 + R 후 taskschd.msc

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

등 여러 가지 방법으로 실행할 수 있다.

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
작업 스케줄러 실행 모습

작업 스케줄러 설정

이제 매일 1시간 주기로 chrome 브라우저를 통해 네이버(http://naver.com/) 홈페이지를 열어보는 스케줄을 추가해보도록 하겠다. 

작업 만들기 버튼을 클릭하여 새 작업 만들기 창을 띄우자

우선 일반 탭에 이름을 작성하고 사용자 계정을 선택하자 나는 일과시간에만 돌릴 생각이기에 사용자가 로그온 할 때만 실행을 선택하였다.

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

트리거 탭에서 주기와 시작 시간 반복 간격 만료시간 사용 여부를 설정하자

우선 주기는 당일에 한해서만 실행되도록 한 번을 선택하였다.

결국 오늘 설정이 완료된 시각부터 5분 주기로 저녁 6시 11분 56초를 끝으로 스케줄러가 중지된다.

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

확인을 누르면 아래와 같이 추가된다.

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

동작 탭에서 실행할 배치 프로그램을 설정하자

크롬 브라우저에서 네이버를 실행하려고 하면 프로그램/스크립트에 크롬이 설치되어 있는 경로에서 크롬 실행파일을 선택하고 인수 추가(옵션)(A)에 네이버 url을 넣는다.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

"https://naver.com"

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

동작에 추가된 내용이 나온다. 확인을 눌러 최종 작업을 만들자.

드디어 작업 스케줄러 목록에 추가한 스케줄이 보인다.

만일 트리거 생성에서 실행을 체크하지 않았다면 우측에 있는 실행 버튼을 한번 클릭해줘야 스케줄이 시작한다.

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

기록 탭에서 실제 수행되었는지 확인할 수 있는 로그를 볼 수 있다.

물론 내가 추가한 작업은 네이버 홈페이지를 여는 것이기 때문에 직관적으로 볼 수 있어 굳이 볼 필요는 없지만 백그라운드로 작업되는 경우 로그를 통해 실행 여부를 확인 하자

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

스케줄러를 통해서 할 수 있는 일들은 무궁무진하다.

며칠 돌리다 보니 문제가 있었다. 브라우저를 계속 띄우기에 오래 돌리다 보면 메모리가 꽉 찬다^^;

그래서 결국 일일 1회 호출로 변경하고 페이지내에서 10분 후에 리로드 하도록 변경ㅋㅋ

이번에 데이터수집 과정에서 일정시간마다 카메라를 동작하고 캡쳐해서 서버에 보내주는 프로그램을 task를 짜야했다.

지난번 배치파일을 이용해 파이썬 파일을 실행하는 동작을 진행하였었는데 이를 이용하면 간단하게 일정시간마다 프로그램을 자동으로 실행시킬 수 있다(with window 작업스케줄러).


순서는 다음과 같다. 

1. 파이썬 코드를 실행시켜주는 배치파일 만들기(아래 링크 참조)

https://dohyeon.tistory.com/22?category=1016127 

[windows10] 배치파일을 이용하여 파이썬 파일 실행하기

1. 메모장을 연다. 2. 아나콘다 가상환경 상에서 python file을 실행하기 위해 아래와 같이 작성한다. call /Scripts/activate.bat call conda activate <가상환경이름> python <실행하고자 하는 파이썬 파일 경로..

dohyeon.tistory.com

작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

2. 작업스케줄러를 이용해서 배치파일 실행하기

이벤트란 ? 

  • window 작업스케줄러는 특정 이벤트가 발생했을 때 프로그램을 동작시켜주는 프로그램이다(=linux의 crontab).
  • 이벤트는 특정시간 혹은 로그인, 컴퓨터 전원 on 등 다양한 이벤트가 될 수 있다. 

작업스케줄러 사용법 

  • window 검색창에 "작업스케줄러"를 검색하고 실행한다.
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
  • 화면 우측상단 작업만들기 실행
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
  • 원하는 작업 이름 및 설명을 적고 보안옵션 선택 (사용자의 로그온 여부에 관계없이 실행 선택)
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
  • 트리거 탭에서 작업 시간 설정
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

나의 경우 매일 1시간마다 카메라를 동작시켜야 하기 때문에 매주(월화수목금토일) 선택 후 작업반복시간 간격 1시간 , 기간 무기한 으로 선택하였다.

  • 동작될 프로그램 선택
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

배치파일을 실행하는 경우 그냥 프로그램/스크립트에 배치파일을 선택해서 넣어주면 끝! 

<파이썬 인터프리터를 직접 실행할 경우 프로그램/스크립트에 예를들어 test.py 만 넣고 

시작 위치(옵션)(T): 항목에 절대경로를 넣어주면 동작된다. (한참고생했다...)>

  • 조건 탭 
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

데스크탑에서 실행한다면 따로 건들일 것 없다

  • 설정 탭 (중요!!!!!!!!!)
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

나는 카메라가 30일동안 동작해야 하므로 체크된 체크박스를 해지하고 확인을 눌러야 함!! 

  • 완료
작업 스케줄러 1 시간 - jag-eob seukejulleo 1 sigan

zed 라는 동작 스케줄을 마우스 오른쪽 클릭 후 "실행" 버튼 클릭하면 원하는 시간마다 동작이 실행된다!