본문 바로가기
linux

예약 작업

by dongwookim 2023. 3. 8.

이번 시간에는 예약 작업에 대해 알아보려한다.

특정한 시행명령을 일회성 혹은 정기적으로 예약을 걸어 사용하는 방법이다.

 

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