Linux(CentOS) 작업 스케줄러

박종현·2022년 5월 16일
0

리눅스(CentOS)

목록 보기
6/13

일회성 작업 : 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 yyyy-mm-dd - 년/월/일/시/분 표기
      • now +5min
      • teatime - 오후 16시, 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 : 작업을 예약한 사용자
  • 작업 삭제 : atrm [작업번호]
  • at 설정을 통해 생성되는 파일 위치 : /var/spool/at/ 내에 스크립트 파일로 생성, 작업 예약한 사용자의 소유로 생성됨

주기적 작업 : cron

  • crond 데몬에 의하여 관리됨
  • 일반사용자/ 관리자 모두 사용 가능 : /etc/cron.allow, /etc/cron.deny
  • 명령어 : crontab
    • 작업 생성 및 수정 : crontab -e - vi편집기를 사용하여 작업내용 작성
    • 작업 조회 : crontab -l
    • 예약작업 전체 삭제 : crontab -r
  • 주기 예약 방식 : cat /etc/crontab
     # For details see man 4 crontabs
     # Example of job definition:
     # .---------------- minute (0 - 59)
     # |  .------------- hour (0 - 23)
     # |  |  .---------- day of month (1 - 31)
     # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
     # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
     # |  |  |  |  |
     # *  *  *  *  * user-name  command to be executed
     
     # 0  8  *  *  * command//매일 아침 8시 command 실행
     # 0  7  *  *  1 command//매일 월요일 아침 7시 command 실행
     # 30 14 * 6-8 * command//6월부터 8월까지 오후 14시 30분 command 실행
     # */214 *  *  * command//오후 2시 00분부터 3시 전까지 2분 간격으로 반복 command 실행
  • 시스템 cron
    • /etc/crontab 파일
    • /etc/cron.d 디렉토리 : 해당 디렉토리 내에 파일을 추가하여 수정
       * * * * * [사용자] [command] : 특정 사용자를 지정하여 command 수행
  • anacron
     cat /etc/anacrontab // 명령어 수행
     
     #period in days   delay in minutes   job-identifier   command
     1                   5           cron.daily          nice run-parts /etc/cron.daily
     7                   25      cron.weekly         nice run-parts /etc/cron.weekly
     @monthly    45      cron.monthly        nice run-parts /etc/cron.monthly
     
     # /etc/cron.(daily,weekly.monthly)(매일,매주,매월) 디렉터리 내에 스크립트 파일 생성하여 주기적으로 실행되는 스케줄러 생성 가능
    • 실행여부를 확인하고 누락되었을 경우 실행 가능할 때 다시 작업 수행

0개의 댓글