운영체제/LINUX

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

우끼우끼몽키 2015. 11. 10. 11:51

- 프로세스 예약 데몬

- 리눅스용 작업스케줄러

- 특정시간에 명령어가 수행되도록 등록가능

 

cron이 돌고 있는지 확인 : ps -ef | grep cron

cron 데몬의 실행과 종료 : /etc/rc.d/init.d/crond [start / restart / stop]

 

등록 : crontab - e

삭제 : crontab - r

확인 : crontab - l

 

일반사용자에게 crontab 명령어 사용하도록 설정 허가

=> /etc/cron.allow 여기에 ID 등록


 

일반사용자의 crontab 명령어사용을 제한하고자 한다면

=>/etc/cron.deny  에 ID를 등록


cron.allow 파일이 있으면 이 파일에 들어있는 ID만 사용 가능
cron.deny  파일이 있으면 이 파일에 들어있는 ID는 사용 불가

cron 설정한 후에는 crond 데몬을 재실행하지 않아도 된다.crontab -e 으로 설정 후 빠져나오면 바로 적용

 

 

작성방법

crontab -e

 

 *  *   *  *    *   

분 시 일 월 요일 명령어

 

분: 0~59

시: 0~23

일: 1~31

월: 1~12

요일: 0~7

명령어: 실행할 명령을 한줄로 쓴다 (실행권한 필요 chmod 755 backup.sh)

 

 

구분자는 스페이스로 구분

'*' 표시는 해당 필드의 모든 시간을 의미.

콤마(,)로 구분하여 여러 시간대를 지정.(ex 11,14 = 11시 2시 )

하이픈(-)로 시간 범위 지정. (ex  5 - 9 = 5시~9시 )

슬래쉬(/)로 시간 간격 지정. ( ex */10 = 10분마다 )

 

 

 run-parts
      01 * * * * root run-parts /etc/cron.hourly
      #시간 단위로 실행시키 프로그램입니다.
      # /etc/cron.hourly디렉토리에 있는 내용을 모두 실행합니다.
      02 4 * * * root run-parts /etc/cron.daily
      # 일단위입니다.
      22 4 * * 0 root run-parts /etc/cron.weekly
      # 주단위 입니다.
      42 4 1 * * root run-parts /etc/cron.monthly
      # 월단위 입니다.

 

* * * * * /root/every_1min.sh
→ 매 1분마다 /root/every_1min.sh 를 수행 (하루에 1440회)
15,45 * * * * /root/every_30min.sh
→ 매시 15분, 45분에 /root/every_30min.sh 를 수행 (하루에 48회)
*/10 * * * * /root/every_10min.sh
→ 10분마다 /root/every_10min.sh 를 수행 (하루에 144회)
0 2 * * * /root/backup.sh
→ 매일 02:00에/root/backup.sh 를 수행 (하루에 1회)
30 */6 * * * /root/every_6hours.sh
→ 매 6시간마다 수행(00:30, 06:30, 12:30, 18:30)
30 1-23/6 * * * /root/every_6hours.sh
→ 1시부터 매 6시간마다 수행(01:30, 07:30, 13:30, 19:30)
0 8 * * 1-5 /root/weekday.sh
→ 평일(월요일~금요일) 08:00
0 8 * * 0,6 /root/weekend.sh
→ 주말(일요일, 토요일) 08:00

 


 

=>  > /dev/null  2>&1 이 무슨 뜻입니까?
  지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는(/dev/null)는
  뜻입니다. 만약 결과와 에러를 파일로 저장하려면 /dev/null 대신 파일명을 적어주면 됩니다.

 

 

 

 

'운영체제 > LINUX' 카테고리의 다른 글

라이브러리 환경변수 세팅하기  (0) 2017.10.11
쉘에서 메일쓰기  (0) 2015.11.16
scp를 이용한 파일전송 및 복사  (0) 2015.11.16
VMWARE Linux에서 서버 열기  (0) 2015.11.13
ftp사용  (0) 2015.11.10