Crontab ??
리눅스에서 일정 주기나 특정시간에 명령을 실행할 때 사용하는 것이 Crontab입니다. 간단히 이야기 하자면 스케쥴러 라고 생각을 하면 됩니다.
$ crontab -e
// crontab 작성
$ crontab -l
// crontab 작업 리스트 보기
$ crontab -r
// crontab 모든 작업 삭제
# * * * * * command
* * * * * /home/user/test.sh
먼저, 5개의 실행 주기에 대한 분 시 일 월 요일의 순서로 정의를 해줍니다.
분: 0 ~ 59
시: 0 ~ 23
일: 1 ~ 31
월: 1 ~ 12
요일: 0 ~ 7
// 매분 test.sh 을 수행
$ * * * * * /home/user/test.sh
// 매일 23시 50분에 수행
$ 50 23 * * * /home/user/test.sh
// 매주 일요일 23시 55분에 수행
$ 55 23 * * 0 /home/user/test.sh
// 매월 1일 10시 10분에 수행
$ 10 10 1 * * /home/user/test.sh
여러 주기로 수행하는 작업에 대한 예시입니다.
* * * * * /yser/bin/flock -n /tmp/prop.lockfile / home/user/test.sh
flock -n을 사용하여, shell script가 중복 실행 되지 않도록 수행할 수 있으며, test.sh 가 1분 이상 수행이 된다면, 중복 실행이 되어 예상치 않은 결과가 나올 수 있습니다.
$!/bin/bash -l