Cron?
Cron은 Unix 계열 OS에서 사용할 수 있는 Job scheduler. Cron을 이용하면 원하는 명령을 지정한 시간대에 자동으로 실행시킬 수 있다.
install and daemon start
$ sudo apt install cron
$ sudo service cron start
Command
$ crontab -e # crontab 편집
$ crontab -l # crontab list 조회
$ crontab -r # crontab list 전체 삭제
Crontab 작성 방식
minute hour day month weekday command
시간작성 예제
0 * * * * # 매시간 정각에 실행
0 10 * * * # 매일 10시에 실행
*/10 * * * * # 10분 간격으로 실행
0 13 10,20 * * # 매달 10일과 20일 13시에 실행
0 13 * * 0,1,2 # 매주 월,화,수 13시에 실행
주의사항
- Cron 데몬 시작 까먹지 않기
- Cron을 설치한다고 끝이 아니다. 데몬을 실행시켜주어야 crontab에 작성한 명령이 실행된다.
- 당연하지만 까먹기 쉬운 부분이니 꼭 기억해야 한다.
- PATH 잡아주기
- 본인은 python script를 매 시간마다 실행시키기 위해 cron을 활용했다.
- crontab을 설정하고 테스트를 진행했는데 script 실행이 제대로 되지 않았다.
- log를 살펴보니 package import 문제였다.
- python script를 실행시킨다면 interpreter path, PYTHONPATH를 제대로 설정해주어야 한다.
- conda를 활용하는 환경이라면 interpreter path를 conda env의 python interpreter path를 잡아주어야 package import 에러가 발생하지 않는다.
예시
0 10,17 * * * export PYTHONPATH=$PYTHONPATH:/home/Project_example/ && /usr/bin/python3 /home/Project_example/mains/script1.py >> /home/Project_example/logs/script1.log 2>&1 && sleep 15 && /usr/bin/python3 /home/Project_example/mains/script2.py >> /home/Project_example/logs/script2.log 2>&1
- 매일 10시, 17시에 아래 명령을 실행시키도록 설정했다.
'Linux' 카테고리의 다른 글
PPA (Personal Package Archive) (0) | 2022.02.11 |
---|---|
Disk mount (0) | 2021.06.25 |
sudo 권한 부여하기 (0) | 2021.06.17 |