cron(크론)은 원하는 시간에 명령(프로그램)을 시키기 위한 데몬이다.
서버는 늘 깨어있다는 것을 이용한 최대한의 활용법이 될 수 있다.
- 내가 새벽 3시에 서버에 특정 작업을 해줘야하는데 그 때 깨어있을 수 있는가?
- 또는 30분간격으로 HDD의 사용량을 운영자에게 알리도록 해야한다면?
- 매월 초에 자료를 백업 받고 싶다면?
crontab -l
→ 현재 crontab에 등록된 작업보기
crontab -e
→ crontab 편집하기
시간 설정에서 몇가지 의미있는 것들을 알아보자.
- '*'표시는 해당 필드의 모든 시간을 의미한다.
- 3,5,7 와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다.
(2~10까지 3간격으로. 즉, 3,6,9를 의미함)
원하는 시간 형 식
매주 토요일 새벽 2:20
20 2 * * 6 명령어
매일 오후 4,5,6시
0 4-6 * * * 명령어
매일 2시간간격으로 5분대에
5 */2 * * * 명령어
매월 1일 새벽 1:15
15 1 1 * * 명령어
1,7월 1일 새벽 0:30
30 0 1 1,7 * 명령어
잘실행되고 있는지 로그를 확인하려면
명령어 뒤에 >> /home/user/crontab.log
우분투 서버버전에서 crontab 사용해보려고 했는데 /var/log 에 crontab 로그파일이 남겨져 있지 않아서 왜 그런지 찾아보니 기본설정이 로그가 남겨지지 않도록 되어있었습니다. 다음과 같이 로그 관련 데몬 설정 파일을 수정하고 데몬을 재시작 시켜 주면 됩니다.
sudo vi /etc/syslog.conf
파일 열어서 crontab 찾아서 코멘트 되어 있는 부분 풀어줍니다.
Vaslor.net 환영합니다.