Cron
Overview
Linux cron/crontab 명령어 내용 정리.
Basic
cron 은 리눅스에서 스케쥴링하여 원하는 시간에 작업을 실행할 수 있도록 해주는 유용한 툴이다. 매일/매주/매달 등등 특정된 시간마다 주기적으로 지정된 작업을 규칙적으로 실행할 수 있도록 해준다.
cron은 시작할 때 모든 곳에 저장된 설정파일들을 읽어 메모리에 저장해두고 휴지 상태에 들어간다. 그리고 매분마다 활성화돼 변경된 crontab 파일들이 있는지 확인하고, 변경된 경우 설정을 다시 읽어 저장하고, 그 시간에 실행해야 할 작업이 있는지 확인하고 실행시킨 후 다시 휴지 상태로 들어간다.<ref>http://webdir.tistory.com/174</ref>
cron 이 참조하는 파일은 다음과 같다.
/var/spool/cron /etc/cron.d /etc/crontab
/var/spool/cron
시스템 개별 사용자를 위한 crontab 파일 위치이며 일반적으로 root 계정용 하나와 계정 사용자당 1개의 파일을 가진다.
파일명은 사용자의 계정명이며 cron은 이 이름을 바탕으로 각 설정 파일에 지정된 작업들을 실행할 때 사용할 UID를 결정한다. 이 곳에 있는 설정파일들은 crontab 명령으로 관리한다.
/etc/crontab
관리자가 직접 지정한 작업들을 설정하며, 임의의 사용자 권한으로 실행할 수 있다. 시스템 관련 작업들을 등록해 사용하는 곳이다.
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
/etc/cron.d
소프트웨어 패키지를 설치할 때 필요한 주기적인 작업을 등록하는 공간으로 사용한다. 임의의 사용자 권한으로 실행할 수 있다.
사용자 제어
/etc/cron.allow 및 /etc/cron.deny 파일에서 사용자에 대한 crontab 사용을 관리할 수 있다.
/etc/cron.allow
이 파일이 있는 경우 파일 내 지정된 사용자만 crontab을 등록할 수 있다. 지정되지 않은 사용자들은 crontab 명령을 실행할 수 없다.
/etc/cron.deny
이 파일이 없는 경우에는 이 거부 파일이 사용된다. 파일 내 지정된 사람을 제외한 나머지 사용자에게 crontab 명령 실행 권한이 주어진다.
두 파일 모두 존재하지 않을시
두 파일 모두 존재하지 않는 경우에는 대다수 시스템에서 루트 관리자만이다. 데비안과 우분투 배포판은 이런 경우 모든 사용자에게 실행 권한을 준다.
See also
- http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/ - Schedule Tasks on Linux Using Crontab
References
<references />