강좌 & 팁
Ubuntu에서 cron daemon은 3개의 configuration파일을 참조한다.
a) 사용자별 구성파일: /var/spool/cron/crontabs디렉토리 밑에 사용자별파일이 있어서 각 사용자는 자신이 필요한 cron job을 등록시킬 수 있다.
1편에서 사용한 crontab명령은 바로 이 파일을 에디트 또는 갱신한다.
b) 서비스별 구성파일: /etc/cron.d밑에는 서버스별 cron-config 파일이 있다.
c) 시스템별 구성파일: /etc/crontab은 root소유의 구성파일로서 시스템관리자가 사용한다.
이 파일은 /etc/cron.hourly, /etc/cron.weekly /etc/cron.monthly에 있는 내용을 각 시간마다, 주마다, 달마다 수행시킨다.
cron (daemon)은 매분마다 깨어나서 그 시각에 해야할 job을 수행한다.
그리고 /etc/crontab, /etc/cron.d에 있는 파일들이 수정되었는 지를 확인하고 수정되었다면 다시 읽어 들인다.
'서버스벌구성파일'과 '시스템별 구성파일'은 각 cron job마다 그 job을 실행하는 사용자를 지정해 주어야 하는데
다음과 crontab에 사용한 줄 포맷
<cron-time> <cron-job>
에 대해 사용자(login-name)를 추가하면 된다.
<cron-time> <user> <cron-job>
'서버스벌구성파일'과 '시스템별 구성파일'의 파일포맷은 위와 같으며 실행권한이 없어도 된다.
/etc/cron.hourly, /etc/cron.weekly /etc/cron.monthly밑에 있는 파일은 실행권한을 주어져야 한다.
/etc/cron.daily에는 다음과 같은 스크립트파일들이 있다.
위의 파일들이 run-parts에 의한 순서대로 매일 아침 6시25분에 실행되게 된다.
'run-parts'에 처럼 알파벳, 숫자, '-', '_'로 구성된 파일을 실행할 파일로 인식한다.
passwd를 보면 다음과 같다.
/etc밑에 있는 사용자암호에 관련된 파일들을 매일 /var/backups로 백업하는 cron job을 수행하고 있다.
dpkg파일을 보면
이 역시 /var/lib/dpkg/status파일을 /var/backups로 압축하여 백업하고 있다.