리눅스 / crontab 사용법
Created 2018-02-11
Last Modified 2024-01-05
cron & crontab
cron은 특정 시간에 특정 작업을 수행하게 하는 시스템 대몬이다. 백업, 캐시 메모리 비우기 등 주기적으로 어떤 작업을 해야할 때 유용하다.
crontab은 시간과 작업을 적은 텍스트 파일이다. 사용자별로 파일이 존재한다. cron은 모든 사용자의 crontab 파일을 찾아서, 적혀진 일정대로 작업을 수행한다.
작업 목록 보기
예약 작업 목록을 보고 싶다면 다음과 같이 명령한다. 사용자의 crontab 파일의 내용이 출력된다.
# crontab -l
작업 삭제하기
예약 작업을 모두 삭제하고 싶다면(crontab 파일 내용을 다 지우고 싶다면) 다음과 같이 명령한다.
# crontab -r
작업 수정하기
예약 작업을 만들거나 수정하고 싶다면 다음과 같이 명령한다. crontab 파일이 없다면 새로 만들고, 있다면 그 파일을 연다.
# crontab -e
작업 추가하기
형식
작업을 추가하는 형식은 다음과 같다.
minute hour day month weekday command
- minute : 0 - 59
- hour : 0 - 23
- day : 1 - 31
- month : 1 - 12
- weekday : 0 - 6 (0 : 일요일)
- command : 수행하려는 작업 명령어
특수한 값
- *는 범위 내의 모든 값이다.
예를 들어 minute의 값으로 *가 있다면 매분, hour의 값으로 *가 있다면 매시간을 뜻한다. - 쉼표로 구분된 숫자는 각각의 값이다.
예를 들어 minute의 값으로 10,20이 있다면 10분과 20분을 뜻한다. - -기호로 연결된 숫자는 범위이다.
예를 들어 hour의 값으로 2-10이 있다면 2시부터 10시까지를 뜻한다. - minute의 값으로 */10이 있다면 10분마다, hour의 값으로 */6이 있다면 6시간마다를 뜻한다.
예제
- 매분, 매시간, 매일, 매월, 매요일, 즉 1분마다 /root/backup.sh를 실행하시오.
* * * * * /root/backup.sh
- 0분, 4시, 매일, 매월, 매요일, 즉 매일 4시에 /root/backup.sh를 실행하시오.
0 4 * * * /root/backup.sh
- 0분, 4시, 매일, 매월, 월요일부터 금요일, 즉 평일 4시에 /root/backup.sh를 실행하시오.
0 4 * * 1-5 /root/backup.sh
- 10분 간격, 4시, 매일, 매월, 매요일, 즉 매일 4시, 4시 10분, 4시 20분, 4시 30분, 4시 40분, 4시 50분에 /root/backup.sh를 실행하시오.
*/10 4 * * * /root/backup.sh