cron
- 주기적으로 반복되는 일을 자동으로 실행할 수 있도록 시스템 작업을 예약해놓는 것
- cron과 관련된 데몬은 crond이고, 관련 파일은 /etc/crontab이다.
crontab의 형식
분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0.일요일~6.토요일) 사용자 실행명령
ex) 00 05 1 * * root cp -r /home /backup
--> 사용자는 root, 매월(*) 모든요일(*) 1일 새벽 5시 00분마다 cp -r /home /backup 명령을 실행한다.
cron은 주기적으로 실행할 내용을 디렉터리에 넣어놓고 작동한다.
일반적으로 crontab 파일에 다음과 같은 내용을 입력해놓을 수 있다.
01 * * * * root run-parts /etc/cron.hourly |
02 4 * * * root run-parts /etc/cron.daily |
03 4 * * 0 root run-parts /etc/cron.weekly |
42 4 1 * * root run-parts /etc/cron.monthly |
cron 실습
매월 15일 새벽 3시 1분에 /home 디렉터리와 그 하위 디렉터리를 /backup 디렉터리에 백업하자.
👩🏻💻 step0 - Server 가상머신 초기화
Snapshot 기능을 이용해 초기화한다. VMware Workstation Pro에서 Server의 Snapshot Manager에서 [설정완료] - [GoTo] - [Yes] 를 클릭한다.
👩🏻💻 step1 - cron 동작 확인
systemctl status cron 명령으로 cron이 동작하는지 확인할 수 있다. (초록색 글씨)
Q를 누르면 종료
👩🏻💻 step2 - 예약 파일 수정
gedit /etc/crontab 명령으로 파일을 열고 10행 이후를 모두 삭제하고, 제일 아래에(10행) 위와 같이 입력한 뒤 저장한다.
👩🏻💻 step3 - 스크립트 파일 만들고 속성 실행할수 있게 만들기
👩🏻💻 step4 - myBackup.sh 에 내용 입력 (gedit)
👩🏻💻 step5 - 백업용 디렉터리 생성 & crond 데몬 재시작
👩🏻💻 step6 - 날짜 강제로 바꾸고 테스트
timedatectl set-ntp 0 명령으로 수동으로 날짜를 바꾼다.
systemctl restart cron 명령 후에는 1~2분 기다리고 설정된 내용이제대로 실행되었는지 확인해보자.
날짜를 2월로 바꾸고 다시 실행해봤을 때 계속 백업된 데이터가 쌓이는 것을 확인할 수 있다.
at
- 일회성 작업을 예약하는 것
- 예약해두면 한 번만 실행되고 소멸됨
예약 | at 시간 | at 3:00am tomorrow at 11:00pm January 30 at now + 1 hours |
확인 | at -l | |
취소 | atrm 작업번호 |
at 실습
먼저 apt -y install rdate at 명령으로 관련 패키지를 설치한다.
내일 새벽 4시에 시스템을 최신 패키지로 업데이트하고, 완료되면 시스템을 재부팅하도록 예약해보자.
at > 이 나오면 apt -y upgrade, reboot, Ctrl+D 를 차례로 입력한다.
'우분투 리눅스' 카테고리의 다른 글
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (12) - 파이프, 필터, 리디렉션 (0) | 2022.02.24 |
---|---|
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (11) - 네트워크 관련 설정과 명령어 (0) | 2022.02.24 |
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (8) - 패키지를 편리하게 설치하는 apt (0) | 2022.02.12 |
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (7) - 프로그램 설치를 위한 dpkg (0) | 2022.02.12 |
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (6) - 링크 (0) | 2022.02.12 |