crontab 이란 cron table의 줄인 말이다.
cron은 linux 에서 batch 작업이라고 생각하면 편하다.(주기적으로 실행되는 명령어를 정해진 시간에 자동으로 실행해주는 도구)
crontab은 사용자의 개별 crontab 즉 cron 작업들을 관리하는 명령어이다.
1. linux 재부팅시 cron을 자동 수행하고자 하는 경우
# 재부팅시 자동 수행 or 미수행 sudo systemctl [enable/disable] crond # cron systemctl 등록 확인 sudo systemctl list-unit-files | grep crond |
2. cron 실행 명령어
# crond 실행/중지/재시작/상태 service crond [start/stop/restart/status] |
3. crontab 명령어
# crontab 편집 crontab -e # crontab 리스트 crontab -l # crontab 리스트 전체 삭제 crontab -r |
4. crontab 수행주기
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed [수행주기별 특수 기호] 1. * : 해당 기호가 입력되면 해당 필드의 모든 값에서 cron 실행 2. - : 숫자 구간을 지정 가능 3. , : 특정값을 여러개 지정 가능. 구각이나 주기로 지정이 안되는 불특정한 값 4. / : 값을 특정 주기로 나눌때 사용 |
[예시 ] # 매주 토요일 작업 7시 10분 작업 10 07 * * 6 /home/test/test.sh # 매년 1월 1일 7시 10분 작업 10 07 1 1 * /home/test/test.sh # 매일 7시 9시 12시 0분에 작업 00 7,9,12 * * * /home/test/test.sh # 5분마다 수행 */5 * * * * /home/test/test.sh # 매달 1일부터 5일까지 7시에 작업 0 7 1-5 * * /home/test/test.sh |
cron 작업에 대해서 중복실행을 막기 위해서는 flock이란 명령어를 써야하며 해당은 flock에 관한 글을 참고하면 된다.
'개발 > 리눅스' 카테고리의 다른 글
리눅스 서버 간 통신 확인하기 (0) | 2023.07.24 |
---|---|
linux flock 중복방지 (0) | 2023.03.15 |