이번 시간에는 예약 작업에 대해 알아보려한다.
특정한 시행명령을 일회성 혹은 정기적으로 예약을 걸어 사용하는 방법이다.
at
단순 예약 작업, 주로 1회만 실행
설치
# dnf install -y al
# systemctl start(restart, status, stop, enabled, disable) atd
-> # systemctl enable -- now atd
enable: 시스템을 재시작해도 자동으로 실행됨.
사용법
# at hh:mm yyyy-mm-dd
# at now +3 minutes
# at hh:mm today(tomorrow)
at> cat > a.txt << EOF
at> hello linux
at> EOF
# atq or at -l
# atrm 작업번호 or at -d 작업번호
# atc 작업번호
# at hh:mm yyyy-mm-dd -f 스크립트파일
cron
주기적인 예약 작업
설정파일
# /etc/crontab
분 시간 일 월 요일 작업자 작업내용
0-59 0-23 1-31 1-12 0-7 root reboot
1,31 1 1 * * root reboot
1-10/2 1 1 * * root reboot
00 0 1 2-12/2 6 root reboot
특정 유저의 cron 작업은 crontab -u 유저명 -e 이다.
cron -u a -e
00 0 1 2-12/2 6 reboot
예시로 보면 아래와 같다.
먼저 오후1시 13분에 hello 라는 내용이 담긴 aa.txt 파일이 생성 되게 설정을 한다.
atq 명령어로 실행 대기중인 명령을 볼 수 있다.
해당 시간이 됬을때 확인해보면 aa.txt 파일이 생성됨을 알 수 있다.
이번엔 cron으로 예약작업을 해보려 한다. 바로 명령을 입력한 at와 달리 스트립트 파일을 쓰려한다.
명령이 길어지면 스트립트 파일을 작성하면 용이하다.
아래와 같은 내용을 가진 스트립트 파일 homeback.sh을 만든다.
bash로 실행하며. 현 시간을 기준으로 이름을 만들고 /boot 디렉토리의 내용을 gz로 압축한
date의 이름을 가진 파일을 백업폴더에 생성한다.
/etc/crontab을 실행하여 오후1시 22분에 루트 하위의 homeback.sh 파일을 실행하는 예약 설정을 한다.
오후 1시 22분에 확인해보면 해당시간에 tar.gz 파일이 생성됨을 알 수 있다.
이번엔 루트가 아닌 사용자 a의 예약을 해보려고 한다.
cron -u a -e 명령으로 진입하면 편집화면으로 들어가며 내용을 작성할 수 있다.
-u a -l 명령으로 a 유저의 예약대기 중인 명령을 볼 수 있으며
실시간으로 팡리이 반영됨을 보고자 한다면 watch 명령어를 쓰면 위 화면과 같이 볼 수 있다.
빠져나가려면 Ctrl + C를 누르면 된다.
예약 명령대로 오후 1시 27분에 aaa.txt 파일이 생성 됨을 알 수 있다.
'linux' 카테고리의 다른 글
디스크관리 1 (0) | 2023.03.06 |
---|---|
사용자 그룹관리(/etc/passwd와 /etc/group) (0) | 2023.03.04 |
파일과 디렉토리의 권한 설정 (0) | 2023.03.02 |
압축과 아카이브 (0) | 2023.03.02 |
link 파일: hardlink와 Symboliclink (0) | 2023.03.02 |