Cron

From 탱이의 잡동사니
Revision as of 08:37, 25 July 2016 by Pchero (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 />