crontab은 윈도우에서 스케줄러와 유사합니다. 특정 시간에 특정 작업을 실행할 경우 사용합니다.
기본적인 명령어는
명령어 |
설명 |
crontab -e |
실행할 작업 등록 및 편집 |
crontab -l |
실행할 작업 확인 |
crontab -r |
모든 작업 삭제 |
crontab -e 를 실행 후 작업
- crontab 편집기에서 다음과 같이 작성하면 됩니다.
*(분 0-59) *(시 0-23) *(일 1-31) *(월 1-12) *(요일 0-7) <작업 내용>
- 예시를 살펴보면
# 1분 마다 a.sh 실행
* * * * * * /home/a.sh
# 10분 마다 b.sh 실행
*/10 * * * * /home/b.sh
# 매주 월요일 9시 마다 c.sh 실행
0 9 * * 1 /home/c.sh
# 매일 9시 부터 9시 30분까지 d.sh 실행
0-30 9 * * * /home/d.sh
# 1일에서 10일 까지 9시, 12시, 15시, 18시에 정각부터 30분까지 e.sh 실행
0-30 9,12,15,18 1-10 * * /home/e.sh
# reboot 될 때마다 f.sh 실행
@reboot /home/f.sh
주의사항
- crontab은 shell에서 동작합니다
- bash에서 동작하기 위해서 다음 내용을 추가해야 합니다.
SHELL = /bin/bash
- crontab에서는 환경변수가 초기화되어 실행합니다.
- 파이썬 파일을 10분마다 실행하고 싶었는데, 파이썬 환경변수가 초기화되어 crontabl 안에서 설정해줘야 합니다.
- 다음 내용을 추가해줬었습니다.
USER = ubuntu
SHELL = /bin/bash
PATH = /sbin:/bin:/usr/sbin:/usr/bin:$HOME/bin
PYTHONPATH = <파이썬경로>
- 제대로 동작하지 않을 시 cron이 올바르게 실행되고 있는지 확인합니다.
sudo service cron status