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

Jmnote (토론 | 기여)님의 2012년 9월 11일 (화) 21:56 판 (Cron 문서를 크론탭(으)로 옮기면서 넘겨주기를 덮어 씀)

cron, crontab, cron job, crontab job
크론, 크론탭, 크론작업, 리눅스 작업 스케줄러
  • 리눅스용 작업 스케줄러
  • 특정시각에 명령어가 수행되도록 등록가능

1 등록형식

*    *    *    *    *  수행할 명령어
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── 요일 (0 - 6) (0 =일요일)
│    │    │    └────────── 월 (1 - 12)
│    │    └─────────────── 일 (1 - 31)
│    └──────────────────── 시 (0 - 23)
└───────────────────────── 분 (0 - 59)
→ 분시일월요!
  • 1 5 * * * /root/myscript.sh
→ 매일 5시 1분에 /root/myscript.sh 를 수행

2 작업목록 확인

현재 사용자
[root@jmnote ~]# crontab -l
no crontab for root
다른 사용자
[root@jmnote ~]# crontab -l -u testuser
no crontab for testuser

3 직접 등록

crontab -e

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

4 등록 스크립트

명령어 (예시)
cat <(crontab -l) <(echo "1 5 * * * /root/myscript.sh") | crontab -
→ 매일 5시 1분에 /root/myscript.sh 를 수행하도록 등록
실행예시
[root@jmnote ~]# crontab -l
no crontab for root
[root@jmnote ~]# cat <(crontab -l) <(echo "1 5 * * * /root/myscript.sh") | crontab -
[root@jmnote ~]# crontab -l
1 5 * * * /root/myscript.sh

5 삭제

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

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

6 로그

변경/수행 이력은 /var/log/cron에 기록된다.

7 같이 보기

8 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}