Cron

From 탱이의 잡동사니
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

References

<references />