* cron
- 일정시간마다 시스템에서 자동으로 실행시키는 데몬(Windows의 작업스케줄러와 비슷한 기능)
- 정기적 작업을 할때 많이 사용
- cron을 사용할때 crontab이라는 명령을 이용해서 실행한다. (/etc/crontab)
- 각각의 사용자가 등록한 crontab은 /var/spool/cron/[사용자명]에 저장된다.
* cron 데몬의 시작 & 종료
- /etc/rc.d/init.d/crond [start/restart/stop]
* crontab
- 지정된 시간에 다른 프로그램을 실행하면서 연속적으로 실행하는 프로그램
- 유사한 명령으로는 at 명령어가 있다.
* crontab와 at 명령의 차이점
- crontab 명령은 일정한 간격으로 계속해서 명령을 실행한다. 하지만 at 명령은 지정된 명령을 한번만 수행.
* crontab 옵션
-l : 현재 crontab에 의해 설정 된 내용을 출력
-e : crontab의 내용을 작성하거나 수정
-r : crontab의 내용을 삭제
-u : root 권한자가 해당 사용자의 crontab 파일을 다룰때 사용
예) crontab -e -u luffy
* crontab의 작업형식
[분] [시] [일] [달(월)] [요일] [명령어]
- 분 : 분을 의미 (0 ~ 59까지 사용)
- 시 : 시를 의미 (0 ~ 23까지 사용)
- 일 : 날짜를 의미 (1 ~ 31까지 사용)
- 달(월) : 달(월)을 의미 (1 ~ 12까지 사용)
- 요일 : 요일을 의미 (0 ~ 7까지 사용, 0과 7은 일요일을 나타냄)
- 명령어 : 실행 할 명령어
구분자는 space로 한다.
위 형식에서 시간을 나타내는 각 필드에서는 와일드 카드 '*'를 사용할 수 있고, 각각의 요일을 구분할 때는 ','를 사용하고 연일 을 나타낼때는 '-'를 사용한다.
즉, 월요일과 수요일은 '1,3', 월요일부터 금요일까지는 '1-5'로 표시할 수 있다.
예) 월요일부터 금요일까지 12시에 /tmp/start라는 스크립트를 실행
0 12 * * 1-5 /tmp/start
예) 1월부터 10월까지 2개월마다 매일 12시에 /tmp/start라는 스크립트를 실행
0 12 1 1-10/2 * /tmp/start (/2는 2달마다라는 표시. 만약 5일마다 작업을 수행시키고 싶으면 0 1 /5 * * [명령]
예) 월, 수, 금 오전 4시에 /tmp/start라는 스크립트를 실행
0 4 * * 1,3,5 /tmp/start
* cron 사용자 제한
- /etc/cron.allow(허가목록)과 /etc/cron.deny(거부목록)을 참조하게 된다.
- /etc/cron.allow 만 존재하는 경우 : cron.allow 파일에 등록된 사용자만 사용가능
- /etc/cron.deny만 존재하는 경우 : 기본적으로 모든 사용자가 사용가능하고 cron.deny에 등록된 사용자만 사용불가
- 두 파일이 모두 없을 경우 : 모든 사용자가 사용가능
- 두 파일이 모두 있는 경우 : cron.deny 내용을 무시하고 cron.allow 파일에 등록 된 사용자만 사용가능
- 일정시간마다 시스템에서 자동으로 실행시키는 데몬(Windows의 작업스케줄러와 비슷한 기능)
- 정기적 작업을 할때 많이 사용
- cron을 사용할때 crontab이라는 명령을 이용해서 실행한다. (/etc/crontab)
- 각각의 사용자가 등록한 crontab은 /var/spool/cron/[사용자명]에 저장된다.
* cron 데몬의 시작 & 종료
- /etc/rc.d/init.d/crond [start/restart/stop]
* crontab
- 지정된 시간에 다른 프로그램을 실행하면서 연속적으로 실행하는 프로그램
- 유사한 명령으로는 at 명령어가 있다.
* crontab와 at 명령의 차이점
- crontab 명령은 일정한 간격으로 계속해서 명령을 실행한다. 하지만 at 명령은 지정된 명령을 한번만 수행.
* crontab 옵션
-l : 현재 crontab에 의해 설정 된 내용을 출력
-e : crontab의 내용을 작성하거나 수정
-r : crontab의 내용을 삭제
-u : root 권한자가 해당 사용자의 crontab 파일을 다룰때 사용
예) crontab -e -u luffy
* crontab의 작업형식
[분] [시] [일] [달(월)] [요일] [명령어]
- 분 : 분을 의미 (0 ~ 59까지 사용)
- 시 : 시를 의미 (0 ~ 23까지 사용)
- 일 : 날짜를 의미 (1 ~ 31까지 사용)
- 달(월) : 달(월)을 의미 (1 ~ 12까지 사용)
- 요일 : 요일을 의미 (0 ~ 7까지 사용, 0과 7은 일요일을 나타냄)
- 명령어 : 실행 할 명령어
구분자는 space로 한다.
위 형식에서 시간을 나타내는 각 필드에서는 와일드 카드 '*'를 사용할 수 있고, 각각의 요일을 구분할 때는 ','를 사용하고 연일 을 나타낼때는 '-'를 사용한다.
즉, 월요일과 수요일은 '1,3', 월요일부터 금요일까지는 '1-5'로 표시할 수 있다.
예) 월요일부터 금요일까지 12시에 /tmp/start라는 스크립트를 실행
0 12 * * 1-5 /tmp/start
예) 1월부터 10월까지 2개월마다 매일 12시에 /tmp/start라는 스크립트를 실행
0 12 1 1-10/2 * /tmp/start (/2는 2달마다라는 표시. 만약 5일마다 작업을 수행시키고 싶으면 0 1 /5 * * [명령]
예) 월, 수, 금 오전 4시에 /tmp/start라는 스크립트를 실행
0 4 * * 1,3,5 /tmp/start
* cron 사용자 제한
- /etc/cron.allow(허가목록)과 /etc/cron.deny(거부목록)을 참조하게 된다.
- /etc/cron.allow 만 존재하는 경우 : cron.allow 파일에 등록된 사용자만 사용가능
- /etc/cron.deny만 존재하는 경우 : 기본적으로 모든 사용자가 사용가능하고 cron.deny에 등록된 사용자만 사용불가
- 두 파일이 모두 없을 경우 : 모든 사용자가 사용가능
- 두 파일이 모두 있는 경우 : cron.deny 내용을 무시하고 cron.allow 파일에 등록 된 사용자만 사용가능