-
스케줄링 관리linux/centOS 2018. 7. 5. 11:23
☆ at
at 데몬은 지정한 시간에 어떠한 작업이 실행될 수 있도록 작업 스케줄을 예약 처리해 주는 기능을 한다. at 스케
줄을 사용하기 위해서는 at 데몬이 작동하고 있어야 하므로, 다음과 같이 atd 데몬을 동작시킨다.
# service atd restart
Stopping atd: [ OK ]
Starting atd: [ OK ]
(명령어 형식)
# at time
Usage: at [-V] [-q x] [-f file] [-m] time
at [-V] [-q x] [-f file] [-m] -t [[CC]YY]MMDDhhmm
at -c job [job...]
(atq | at -l) [-V] [-q x]
(atrm | at -d | at -r) [-V] [-q x] job ...
batch [-V] [-f file] [-m]
(명령어 사용예)
■ 작업 선언
# at 1300
# at 10:00pm today
# at now +1 min
■ 작업 확인
# at -l
# atq
■ 작업 취소
# atrm N (N : Job ID)
# at -r N
■ at 명령어 사용자 제한
at 데몬을 사용할 수 있는 사용자를 제한할 수 있는 방법이 있다. /etc/at.allow 파일과 /etc/at.deny 파일을 이용
하여 at을 사용할 수 있는 사용자들을 지정한다.
at.deny 파일만 존재하면, at.deny 파일에 존재하는 사용자는 at 명령어를 수행할 수 없고, at.deny 파일에 존재하지 않는 모든 사용자는 at 명령어를 수행할 수 있다.
at.allow 파일이 존재하면, at.allow 파일에 존재하는 사용자만 at 명령어를 수행할 수 있다. at.allow 파일이존재하면, at.deny 파일은 보지 않는다.
at 명령어 사용자 제한
① 기본 사항 점검
# ls -l /etc/at.*
-rw------- 1 root root 1 Jan 27 2010 /etc/at.deny
# cat /etc/at.deny
#
-> (설명) at.allow 파일이 없고, at.deny 파일만 존재하는 경우에는 at.deny 파일에 등록된 사용자만 at 명령어를
수행할 수 없다.
-> at.deny 파일에 기본적으로 사용자 등록이 없기 때문에 at 명령어 사용에 대한 거부할 사용자가 없어서, 모든
사용자가 at 명령어를 사용할 수 있는 설정이다.
② /etc/at.allow 파일 생성
# vi /etc/at.allow
user01
user02
-> (설명) at.allow 파일이 존재하는 경우, at.allow 파일에 등록된 사용자만 at 명령어 수행이 가능하고, 등록되
지 않은 모든 사용자는 사용할 수 없다.
③ user01 사용자로 테스트
# su - user01
$ at 1300
at> echo
at> <EOT> <---- <CTRL + D> 입력
job 4 at 2010-03-02 13:00
$ at -l
1 2014-04-05 13:00 a user01
④ user03 사용자로 테스트
$ su - user03
4 2014-04-05 13:00 a user01
$ id
uid=502(user03) gid=502(user03) groups=502(user03)
$ at 1300
You do not have permission to use at.
$ exit
$ exit
#
☆ crontab
cron 데몬은 같은 작업을 주기적으로 반복 실행되도록 하는 작업 스케줄용 데몬으로, 매분, 매시, 매일, 매주, 매월, 매요일 단위로 cron 데몬에 의해서 작업이 실행될 수 있다. /etc 디렉토리에 보면 시, 일, 주, 월, 요일 단위 형태로 cron 디렉토리가 존재하며, 이들 디렉토리에는 작업 예약 스크립트들이 들어 있다. /etc/cron/daily 디렉토리안에는 여러 가지 스크립트들이 존재하는데, 매일 이들 스크립트는 cron 데몬에 의해서 자동적으로 실행된다.
(cron 데몬실행)
cron으로 작업 스케줄을 예약하기 위해서는 crond 데몬을 작동시켜야 하는데 다음과 같이 데몬을 재실행해 주면 된
다. 이 작동하고 있어야 한다. 그러므로, 작업 스케줄을 예약하기 전에 항상 crond 데몬이 작동될 수 있도록 다음과 같이 처리한다.
# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
(명령어 형식)
# crontab [-u user] file
# crontab [-u user] [ -e | -l | -r ]
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
(명령어 사용예)
■ 작업 선언
# crontab -e (-e : Edit, # vi /var/spool/cron/<사용자이름>)
# crontab -e -u user01
■ 작업 확인
# crontab -l (-l : List, # cat /var/spool/cron/<사용자이름>)
■ 작업 삭제
# crontab -r (주의) (-r : Remove, # rm /var/spool/cron/<사용자이름>)