잡 스케줄링 : 정기적인 작업을 수행하는 경우. (ex 스케줄링)
스케줄링 관련 CMD
at CMD : 특정한 시간대에 한번 작업수행후 사라짐.
crontab CMD : 반복적인 작업을 수행하는 경우.
1. at
지정된 시간에 어떤 작업이 실행될 수 있도록 예약처리 하는 기능. atd 데몬으로써 작동됨으로 기동되고 있어야 한다.
* systemctl status atd.service 로 동작 여부 확인.
형식
at [OPTIONS] [TIME]
주요 활용 포멧.
작업 선언
# at 1300 : 13:00 실행
# at 10:00pm today : 오늘 PM10시 실행
# at now +1 mins : 현재로부터 1분뒤에 실행
작업 확인
# at -l
# atq
작업 취소
# at -r N (N: job ID)
# atrm N (N : Job ID)
[실습] at 선언 및 선언결과, 선언삭제를 해보자
2. crontab
주기마다 반복되는 작업을 실행할 때 사용되는 스케줄 관련 CMD 역시나 crond 라는 데몬이 실행중이여야 기동되는 서비스이다
* system status crond.service 로 동작여부 확인.
형식
crontab [OPIONS] [FILENAME]
주요 사용 포멧
작업 선언
# crontab -e : 작업을 선언/추가한다 (vi /var/spool/cron/ 와 동일 )
# crontab -e -u user01 : 해당 유저에게 작업을 추가.
작업 확인
# crontab -l : 작업 리스트를 본다 (cat /var/spool/cron/<사용자이름> 와 동일)
작업 삭제
# crontab -r : 작업을 삭제 한다 ( rm /var/spool/cron/<사용자이름> 와 동일)
* 모든 작업이 일괄적으로 삭제됨으로. 일부 수정을 희망한다면 crontab -e 를 통해서 수정하는 방식으로 진행한다.
1) crontab 을 활용한 스케줄링
crontab -e 의 작성구조
* * * * * [CMD]
(분) (시) (일) (월) (요일) [CMD]
crontab 파일은 5개의 시간 필드(분/시/일/월/요일)와 한개의 명령어 필드(명령어/스크립트)로 구성되어 있다.
각 필드는 공백문자(White Space)를 통해 구분이 된다.
(분) 자리에는 0분 ~ 59분까지 올수 있다.
(시) 자리에는 0시 ~ 23시까지 올수 있다.
(일) 자리에는 1일 ~ 31일까지 올수 있다.
(월) 자리에는 1월 ~ 12월까지 올수 있다.
(요일) 자리에는 0부터 ~ 7까지 올수 있다. 0,7: 일요일, 1: 월요일, 2: 화요일, 3: 수요일, 4: 목요일
* 각 필드에 들어갈 수 있는 값
0 : 0때 실행
1,2,3 : 1,2,3 때 실행
1-3 : 1~3 떄 실행
* : 매(분,시..)번 실행
*/5 : 전체를 5로 나눠서 실행. (ex> 60/5 떄 실행)
[참고] 주요 활용 포맷 (/root/bin/backup.sh 을 실행)
분 시 일 월 요일 CMD
--------------------------------------------
0 3 * * * /root/bin/backup.sh (하루에 한번씩)
0 0,12 * * * /root/bin/backup.sh (하루에 두번씩)
0 3 * * 0 /root/bin/backup.sh (일주일에 한번씩)
0 3 * * 1,3 /root/bin/backup.sh (일주일에 두번씩)
0 3 1 * * /root/bin/backup.sh (한달에 한번씩)
0 3 1,15 * * /root/bin/backup.sh (한달에 두번씩)
0 3 1 3,6,9,12 * /root/bin/backup.sh (분기에 한번씩)
--------------------------------------------
0 3 1 * 0 /root/bin/backup.sh (매달 1일 3시 정각 and 매주 일요일)
--------------------------------------------
[실습] crontab 을 활용하여 다양한 스케줄링 파일을 만들어보자.
[참고] crontab 의 사용자를 제한해보자.
/etc/cron.{deny,allow}
cron.deny 파일만 존재하면, cron.deny 파일에 존재하는 사용자는 crontab 명령어를 수행할 수 없고, cron.deny 파일에 존재하지 않는 모든 사용자는 crontab 명령어를 수행할 수 있다.
cron.allow 파일이 존재하면, cron.allow 파일에 존재하는 사용자만 crontab 명령어를 수행할 수 있다. cron.allow 파일이존재하면, cron.deny 파일은 보지 않는다.
[root@server1 ~]# vi /etc/cron.deny
user01
[root@server1 ~]# su - user01
[user01@server1 ~]$ crontab -e
You (user01) are not allowed to use this program (crontab)
See crontab(1) for more information
[user01@server1 ~]$
* cron.deny 에 등록되더라도 cron.allow 에 등록되면 이용가능. 단 cron.allow 파일이 존재하는 순간부터는. 해당 파일내 등록된 사용자만 이용가능. (root 는 제외)
'모의해킹 침해대응 과정 > Liunx 관리' 카테고리의 다른 글
리눅스 네트워크 인터페이스 관리 / day 14 (0) | 2021.04.15 |
---|---|
리눅스 백업&복구 / day 12, 13 (0) | 2021.04.14 |
리눅스 사용자 그룹관리 / day 12 (0) | 2021.04.14 |
리눅스 software 관리 RPM/YUM / day 10 (0) | 2021.04.12 |
리눅스 SWAP / day 10 (0) | 2021.04.12 |