OS/Linux

[Linux] 예약 작업 설정 at, crontab

tpcable 2020. 12. 15. 16:54

리눅스에서 예약된 작업을 실행하기 위해 2가지 방법이 있다.


1. at: 정해진 시간에 한번만 실행

2. crontab: 주기적으로 반복되는 작업


at 사용방법

- at 시간입력

- 실행할 명령 입력, ctrl + d를 통해 작업 종료

- 관리자 권한으로 /var/spool/at 을 통해 작업 목록 확인 가능(실행되면 삭제된다.)

관련 명령어

at -l: 작업 목록 확인 (atq 명령어 동일)

at -r: 작업 삭제 (atrm 명령어 동일)

/etc/at.deny 파일을 통해 at 사용권한 제어 가능

/etc/at.allow 파일이 우선순위를 가지며 allow 파일이 있는경우 포함된 사용자만 사용가능(기본값으로 없으므로 생성해야한다.)


예시

[user1@localhost ch6]$ at 10:00 pm

warning: commands will be executed using /bin/sh

at> /usr/bin/ls -l ~user1 > ~user1/at.output

at> <EOT>

job 6 at Tue Dec 15 22:00:00 2020

[user1@localhost ch6]$ at -l

6 Tue Dec 15 22:00:00 2020 a user1

[user1@localhost ch6]$ su -

[root@localhost ~]# ll /var/spool/at
합계 12
-rwx------. 1 user1 user1 4662 12월 15 16:38 a000060198f1ec ==> 설정 항목 확인
drwx------. 2 root  root  4096 12월  9 17:00 spool

crontab 사용방법

- crontab -e: 작업 파일 생성 및 수정

- crontab -l: 파일 내용 확인

- crontab -u 사용자 -r: 특정 사용자의 crontab 파일 삭제

- 관리자 권한으로 /var/spool/cron 을 통해 작업 목록 확인 가능


crontab 파일 형식 

분(0~59) 시(0~23) 일 월 요일(0~7) 명령

요일의 경우 일요일이 0과 7 두개

0: 일요일

1: 월요일

2: 화요일

3: 수요일

4: 목요일

5: 금요일

6: 토요일

7: 일요일

/etc/cron.deny 파일을 통해 crontab사용권한 제어 가능

/etc/cron.allow 파일이 우선순위를 가지며 allow 파일이 있는경우 포함된 사용자만 사용가능(기본값으로 없으므로 생성해야한다.)


예시) 매달 1일 22시 10분에 해당 명령어 실행

user1@localhost ch6]$ crontab -e
no crontab for user1 - using an empty one
crontab: installing new crontab
10 22 1 * * /usr/bin/ls -l ~user1 > ~user1/cron.output ( 파일 내용 입력 후 vi 종료)
[user1@localhost ch6]$ crontab -l
10 22 1 * * /usr/bin/ls -l ~user1 > ~user1/cron.output