리눅스 반복 예약작업 cron, crond, crontab

Jmnote (토론 | 기여)님의 2017년 4월 3일 (월) 14:33 판 (125.136.118.239(토론)의 편집을 Jmnote의 마지막 판으로 되돌림)

1 개요

cron, cronie, crond, cron daemon, crontab, cron job, crontab job
크론, 크론 데몬, 크론탭, 크론작업, 리눅스 작업 스케줄러
/usr/sbin/crond
/usr/bin/crontab
  • 프로세스 예약 데몬
  • 리눅스용 작업 스케줄러
  • 특정시각에 명령어가 수행되도록 등록가능
  • cronie(패키지) = crond(데몬) + crontab(크론 계획표[1])
  • 로그: /var/log/cron에 변경/수행 이력이 기록됨

2 등록형식

*    *    *    *    *  수행할 명령어
┬   ┬   ┬   ┬   ┬
│   │   │   │   │
│   │   │   │   │
│   │   │   │   └───────── 요일 (0 - 6) (0 =일요일)
│   │   │   └────────── 월 (1 - 12)
│   │   └─────────── 일 (1 - 31)
│   └──────────── 시 (0 - 23)
└───────────── 분 (0 - 59)
→ 이렇게 설정하면 매 1분마다 작업 수행
→ 각 자리는 "분시일월요"를 뜻함

3 예시

* * * * * /root/every_1min.sh
→ 매 1분마다 /root/every_1min.sh 를 수행 (하루에 1440회[2])
15,45 * * * * /root/every_30min.sh
→ 매시 15분, 45분에 /root/every_30min.sh 를 수행 (하루에 48회[3])
*/10 * * * * /root/every_10min.sh
→ 10분마다 /root/every_10min.sh 를 수행 (하루에 144회[4])
0 2 * * * /root/backup.sh
→ 매일 02:00에/root/backup.sh 를 수행 (하루에 1회)
30 */6 * * * /root/every_6hours.sh
→ 매 6시간마다 수행(00:30, 06:30, 12:30, 18:30)
30 1-23/6 * * * /root/every_6hours.sh
→ 1시부터 매 6시간마다 수행(01:30, 07:30, 13:30, 19:30)
0 8 * * 1-5 /root/weekday.sh
→ 평일(월요일~금요일) 08:00
0 8 * * 0,6 /root/weekend.sh
→ 주말(일요일, 토요일) 08:00

4 작업목록 확인

16px-Crystal_Clear_app_xmag.svg.png crontab 작업 목록 전체 보기 문서를 참고하십시오.
현재 사용자
[root@zetawiki ~]# crontab -l
no crontab for root
다른 사용자
[root@zetawiki ~]# crontab -l -u testuser
no crontab for testuser

5 수동 등록 ★

crontab -e

vi 편집기로 현재 사용자에 대한 cron작업의 확인/수정을 직접 할 수 있다.

6 등록 스크립트

16px-Crystal_Clear_app_xmag.svg.png 스크립트 crontab 등록 문서를 참고하십시오.

7 삭제

현재 사용자의 예약작업을 모두 삭제

crontab -r
실행예시
[root@zetawiki ~]# crontab -l
* * * * * /root/a.sh
* * * * * /root/b.sh
* * * * * /root/c.sh
[root@zetawiki ~]# crontab -r
[root@zetawiki ~]# crontab -l
no crontab for root

8 연습과제

9 같이 보기

10 주석

  1. 크론 테이블(cron table)
  2. 24시간×60회
  3. 24시간×2회
  4. 24시간×6회

11 참고 자료