본문 바로가기
IT/Linux

작업 스케줄러

by 혁클 2021. 3. 30.

 

작업 스케줄러

  • 일회성 작업 : at
  • 주기적 작업 : cron

 

일회성 작업 : at

  • atd 데몬에 의하여 동작
  • 일반 사용자 / 관리자 모두 사용 가능
    • /etc/at.allow : at을 사용할 수 있는 사용자
    • /etc/at.deny : at을 사용할 수 없는 사용자
      • /etc/at.allow 파일이 있을 경우: 이 파일 내에 기록된 사용자만 at 사용 가능
      • /etc/at.allow 가 없고 /etc/at.deny 파일이 있을 경우: at.deny에 명시된 사용자만 at 사용 불가
      • /etc/at.allow, /etc/at.deny 모두 없는 경우 : root만 사용 가능
    • 작업을 예약한 사용자의 권한으로 예약 작업 실행
    • 일반 사용자는 자신의 작업만 조회 가능
    • root는 모든 사용자의 작업 조회 가능
  • 예약된 작업은 별도의 Shell을 생성하여 수행됨 : echo와 같이 화면으로 출력하는 예약 작업은 현재 터미널에 출력되지 않음
  • 명령어 : at
    • # at <TIMESPEC>
    • timespec : /usr/share/doc/at-*/timespec 문서 참고
      • hh:mm - 24시간 제로 표기하는 시간
      • hh:mm am/pm - 12시간 제로 표기하는 시간
      • hh:mm yy-mm-dd : 연월일 시분 지
      • now +5 min
      • teatime : 오후 4시 (16:00)
      • noon : 정오
      • tomorrow : 내일
    • -l : 예약된 작업의 목록 확인 (= atq)
      • 3 Fri Mar 12 00:00:00 2021 a root
        • 3 : 예약된 작업의 번호
        • Fri Mar 12 00:00:00 2021 : 예약일자
        • a : queue 번호 (a~z)
        • root : 작업을 예약한 사용자
  • at 작업 삭제 : atrm <작업 번호>
  • at 설정을 통해 생성되는 파일 위치 : /var/spool/at/ 내에 스크립트 파일로 생성. 작업 예약한 사용자의 소유로 생성됨

 

주기성 작업 : cron

  • crond 데몬에 의하여 관리됨
  • 일반 사용자/관리자 모두 사용 가능 : /etc/cron.allow, /etc/cron.deny
  • 명령어 : crontab
    • 작업 생성 및 수정 : crontab -e
    • 작업 조회 : crontab -l
    • 예약 작업 전체 삭제 : crontab -r
  • cron 설정 정보 파일 : /var/spool/cron/[사용자명]
  • 주기 예약 방식
    • * * * * * [예약 작업내용]
      • 분 : 작업을 수행할 분 지정. (* : 매분 = 0~59)
      • 시 : 작업을 수행할 시 지정. (* : 매시 = 0~23)
      • 일 : 작업을 수행할 일 지정. (* : 매일 = 1~28 or 29 or 30 or 31)
      • 월 : 작업을 수행할 월 지정. (* : 매월 = 1~12)
      • 요일 : 작업을 수행할 요일 지정 (* : 매일 = 0~7)
        • 0:일요일 1:월요일 2:화요일 …. 6:토요일 7:일요일
      • 각 항목에 여러 값 입력 가능: , 로 나열
        • 0 9,10,11,12,13,14,15 * * * : 매일 9시부터 15시까지
      • 범위 지정 가능: - 기호로 범위 표시 가능
        • 0 9-18 * * * : 매일 9시부터 18시까지
      • 간격 지정 가능 : / 기호로 간격 지정
        • */2 9 * * * : 매일 9시 00분부터 2분 간격
    • 예약 주기 예시
      • 매일 아침 8시 :  0 8 * * *
      • 매주 월요일 아침 7시 : 0 7 * * 1
      • 6월부터 8월까지 오후 14 30분 : 30 14 * 6-8 *
      • 오후 2시 00분부터 3시 전까지 2분 간격으로 반복 : */2 14 * * * 

 

시스템 cron

  • /etc/crontab 파일 : 일반적으로 이 파일을 직접 수정하지 않음
  • /etc/cron.d 디렉터리 : 이 디렉토리 내에 파일을 추가하여 수정
  • * * * * * [사용자] [작업] : 특정 사용자를 지정하여 작업 수행

 

anacron 

  • /etc/anacrontab
  • 실행 여부를 확인하고 누락되었을 경우 실행 가능할 때 다시 작업 수행

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

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

방화벽관리(firewalld)  (0) 2021.04.03
로그관리(rsyslog,journal)  (0) 2021.04.01
systemd  (0) 2021.03.29
저장소 관리(LVM,RAID)  (0) 2021.03.27
저장소 관리 (파티션,파일 시스템,스왑)  (0) 2021.03.25

댓글