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

+ Recent posts