OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 정해진 시간에 반복 실행 - crontab, 명시적 지정

주누다 2015. 3. 30. 12:09
반응형


crontab

- 기능 : 사용자의 crontab 파일 관리 

- 형식 : crontab [-u 사용자 ID] [옵션] [파일 이름]

- 옵션

 => '-e' : 사용자의 crontab 파일 편집

 => '-l' : crontab 파일 목록 출력

 => '-r' : crontab 파일 삭제

- 사용 예 : crontab -l, crontab -u user -e, crontab -r



crontab 파일 형식

- 'crontab' 명령으로 관리하는 파일은 사용자별로 생성

- 이 파일에 실행할 작업이 저장

- 'crontab' 파일에는 여러 개의 작업 저장 가능

- 한 행의 하나의 작업을 설정 

 분(0~59)

시(0~23)

일(1~31)

월(1~12)

요일(0~6)

작업내용

 27

17

30

*

*

/bin/ls -l ~ > ~/cron.out



crontab 파일 생성 및 편집 : 'crontab -e'

- 'crontab -e' 처음 명령 실행시 'crontab -e' 편집기 선택 가능

- 또는 명시적으로 VISUAL 또는 EDITOR 환경 변수에 지정된 편집기를 사용하므로 명시적으로 편집기 선택 가능(?)

ex)

user@ubunutu:~$ EDITOR=vi;export EXPORT


- 'crontab -e' 명령 실행시 'crontab' 파일 작성과 관련된 설명이 주석으로 처리된 파일이 Open.

- 가장 마지막 줄에 설정 내용을 입력하면 됨.

- 'crontab -e' 명령으로 편집한 파일 저장시 자동적으로

 '/var/spool/cron/crontabs' 디렉터리의 사용자의 이름으로 생성.

- 일반 사용자는 접근할 수 없으면 시스템 관리자만 접근이 가능.



crontab 파일 내용 확인 : crontab -l

- 'crontab -l' 명령 실행시 현재 사용자의 'crontabl'파일 내용을 출력



crontab 파일 삭제 : crontab -r

- crontab 파일을 삭제할려면 'crontab -r' 명령을 사용

- 시스템 관리자가 특정 사용자의 crontab을 삭제할려면 'crontab -u [사용자 ID] -r' 명령을 사용



crontab 명령 사용 제한

- 'at' 명령과 마찬가지로 '/etc/cron.allow' 파일과 '/etc/cron.deny' 파일 존재(명령 사용 권한 관련 파일)

- 한 줄에 하나씩 사용자의 이름을 기록

- '/etc/cron.deny' 파일이 기본적으로 존재. '/etc/cron.allow' 파일은 관리자가 만들어야 함.

- '/etc/cron.allow' 파일이 있으면 이 파일에 있는 사용자만 'crontab' 명령 사용 가능

- '/etc/cron.allow' 파일이 없고, '/etc/cron.deny' 파일만 있으면 이 파일에 없는 사용자 모두 'crontab' 명령 사용 가능.

- '/etc/cron.allow' 파일과 '/etc/cron.deny' 파일이 모두 없으면,

 시스템 설정에 따라 시스템 관리자만 crontab 명령 사용 가능하던가, 모든 사용자가 사용가능 할 수도 있음



반복 작업 쉽게 - '/etc/cront.hourly', '/etc/cron.daily', '/etc/cron.weekly', '/etc/cron.monthy'

-  반복적으로 작업할 내용을 쉘 스크립트로 만들어 해당 파일을

 '/etc/cron.houyly', '/etc/cron.daily', '/etc/cron.weekly', '/etc/cron.monthly' 디렉터리에 놓으면 됨.


- '/etc/cron.daily' 폴더에 있는 스크립트 파일 참고(ex : cat /etc/cron.daily/passwd)




반응형