Fascination
article thumbnail
Published 2021. 10. 24. 19:44
[Linux] cron과 at Study/Linux

# cron

- 주기적으로 반복되는 일을 자동으로 실행할 수 있도록 시스템 작업을 예약해 놓은 것

- cron과 관련된 서비스(데몬)는 crond이고, 관련 파일은 /etc/crontab임

  > vi로 편집할 수 있고 systemctl 명령어로 cond를 재시작할 수 있음

- /etc/crontab의 형식은 다음과 같음

분  시  일  월  요일  사용자   실행명령

  > 분: 0~59

  > 시: 0~23

  > 일: 1~31

  > 월: 1~12

  > 요일: 0(일) ~ 6(토)

  > *: 신경 안 씀(매월, 매 요일마다..)

00 05 1 *  *  root  cp  -r /home /backup

  >*: 매월, 모든 요일

  > 사용자: root 권한

  > cp -r /home/backup 명령을 실행

  > /home 디렉터리가 통째로 /backup 디렉터리에 복사됨

 

- cron의 경우 주기적으로 실행할 내용을 디렉터리에 넣어놓고 작동함

/etc/crontab 파일과 관련 디렉터리

01  *  *  *  *  root  run-parts  /etc/cron.hourly
02  4  *  *  *  root  run-parts  /etc/cron.daily
03  4  *  *  *  root  run-parts  /etc/cron.weekly
42  4  1  *  *  root  run-parts  /etc/cron.monthly 

* run-parts 디렉터리 명령어는 디렉터리 안의 명령을 모두 실행

 

- 실습: 매월 15일 새벽 3시 1분에 /home 디렉터리와 그 하위 디렉터리를 /backup 디렉터리에 백업하자

1) 시간 설정을 위해 아래 명령어를 통해 관련 패키지를 다운 받음

  > wget http://download.hanbit.co.kr/centos/8/openrdate-1.2-14.fc30.x86_64.rpm 

  > dnf -y install openrdate*.rpm

 

2) systemctl status crond 명령

  > crond가 동작하는지 확인

  > systemctl 명령은 서비스 시작, 중지, 상태 확인 등을 할 수 있는 명령어

 

3) vi /etc/crontab 명령을 입력해 아래 사진과 같이 입력

> 매월 15일 새벽 3시 1분에 /etc/cron.monthly 디렉터리 안의 모든 파일을 실행하라는 의미

 

4) /etc/cron.monthly/ 디렉터리에 메시지를 출력하는 스크립트 파일 (myBackup.sh)을 만들고,

   속성을 실행할 수 있게 바꿈

 

5) vi myBackup.sh 명령을 입력하고 파일 안에 아래와 같이 내용을 입력한 후 저장하고 닫음

> 현재 날짜를 추출해서 /backup 디렉터리에 backup-현재날짜.tar.xz라는 파일로

/home 디렉터리 전체의 백업 파일을 생성하라는 의미

 

6) 백업용 디렉터리를 생성하고 crond 데몬을 재시작함

 

7) 날짜를 강제로 바꾸고 테스트

 

 

# at

- cron은 주기적으로 반복되는 작업을 예약하는 것이지만, at 명령어는 일회성 작업을 예약하는 것임

- 예약해두면 한 번만 실행되고 소멸됨

- 예약

at 3:00am tomorrow
at 11:00pm January 30
at now + 1 hours

- at> 프롬프트에 예약 명령어 입력 후 enter

- 완료되면 ctrl + D

- 확인: at -l

- 취소 atrm 작업 번호

 

- 실습: at 명령어로 내일 새벽 4시에 시스템을 최신 패키지로 업데이트하고, 완료되면 시스템을 재부팅하도록 예약하고, 예약된 내용을 삭제해보자

 

 

 

 

 


[출처]

- 숙명여자대학교 서버운영및보안 수업 - 이종우 교수님

- 이것이 우분투다 (개정판) - 우재남 지음

 

'Study > Linux' 카테고리의 다른 글

[Linux] 파이프, 필터, 리디렉션  (0) 2021.10.25
[Linux] 네트워크 관련 설정과 명령어  (0) 2021.10.25
[Linux] 시스템 설정  (0) 2021.10.24
[Linux] 파일 위치 검색  (0) 2021.10.24
[Linux] 파일 압축과 묶기  (0) 2021.10.23
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!