2024_0207_잡 스케줄링

이기태·2024년 2월 7일

리눅스

목록 보기
8/27

1. 사용자를 위한 정기 작업 수행

ex) 하루에 한번씩 풀 백업하는 경우
> 특정한 시간때에 한번 작업을 수행 -> at
> 반복적인 작업을 수행하는 작업 -> crontab

1) at CMD (실무에는 잘 안씀, 한번만 수행)

/var/spool/at 파일에 저장되어있음.

  • 명령어
    # at 1300 CMD -> 오늘 13:00 수행
    # at 10:00pm today -> 오늘 오후 10:00 수행
    # at now +1 mins -> 1분뒤에 수행

  • 확인
    # at -l
    # atq

  • 작업 취소
    # at -r N
    # atrm N (N : Job ID)

2) crontab CMD (주로 사용)

/var/spool/cron 파일에 저장되어있음.

  • 선언
    # crontab -e [-u user01]
    -> edit파일을 열어 vi /var/spool/cron/$USER 저장

  • 확인
    # crontab -l [-u user01] -> list

  • 삭제
    # crontab -r [-u user01]
    -> remove, 라인은 지워도 파일은 잘 안지우니 주의하자.

crontab 파일 형식

# crontab -l
* * * * * /root/bin/backup.sh -> 분 시 일 월 요일 CMD
0,7: 일요일, 1: 월요일 ........ 6: 토요일

  • 예시

    [실무 예] 매월 첫번쨰 주 일요일날 새벽에 Full Backup 받기
  • crontabl CMD + backup.sh

[스케줄링 실습 11장 p.8~10]
----------------------------------------------------------

----------------------------------------------------------

crontab 명령어 사용자 제한

  • cron.allow, cron.deny
    cron.allow: 이 파일에 있는 유저만 사용 가능
    cron.deny: 이 파일에 있는 유저는 사용 불가
    cron.allow, cron.deny 파일 둘 다 있으면 allow파일만 확인.
    [실습] crontab 명령어 사용자 제한 (ex: wasuser, oracle)
    # cd /var/spool/cron
    # ls -> backupuser user01
    # vi /etc/cron.allow -> backupuser user01을 포함한 wasuser oracle 추가.

2. 관리자를 위한 정기 작업 수행 p.13~

1) crond

(분석)
crond.service(crond)
+--> /etc/crontab
+--> /etc/cron.d/0hourly
+--> /etc/cron.hourly/0anacron(anacron -s)

  • 사용자 설정: /var/spool/cron/*
  • 관리자 설정: /etc/crontab(/etc/cron.d/ <- 같이 실행) -> /etc/anacrontab
    -> /etc/cron.{hourly,daily,weekly,monthly}/

=> /etc/crontab을 실행하면 /etc/cron.d도 같이 실행
=> /etc/cron.d에 0hourly에는 /etc/cron.hourly실행하게 되있음.
=> /etc/cron.hourly에 0anacron 있음.
=> 쭈루룩 서브 폴더 있음. 이렇게 실행하는 파일들이 많음.

[중요] /etc/crontab(/etc/cron.d/*)

  • /etc/httpd/conf/httpd.conf(/etc/httpd/conf.d/*.conf)
  • /etc/yum.conf(/etc/yum.conf.d/*)
    -> 왜 이렇게 서브폴더로 해서 만들어놓느냐,,,?
    -> 체계를 알면 모듈화 하는 것.
    -> 업데이트 하기 좋음.

0개의 댓글