[Linux]at 명령어로 일회성 작업을 예약해 봅시다

at 명령어는 한 번만 실행되거나 주어진 시간에 한 번 실행되는 작업을 예약하는 데 사용됩니다. at관련된 파일들과 명령어들로는 아래와 같으며, Linux 서버 취약점 분석/조치법 중 “at 파일 소유자 및 권한 설정”을 참고하시기 바랍니다.

  • /etc/at.allow: at 명령어를 사용할 수 있는 사용자 등록
  • /etc/at.deny: at 명령어를 사용할 수 없는 사용자 등록
  • atq: 예약 작업 출력
  • atrm <작업번호>: 지정된 예약 작업의 취소

  1. at.allow 및 at.deny 파일 사용법
    • at.deny파일보다 at.allow 파일이 우선합니다.
    • at.allow파일이 없다면 at.deny에 등록된 사용자를 제외하고 모든 사용자가 at 명령어를 사용할 수 있습니다.
    • at.deny이 빈 파일이라면 모든 사용자는 at 명령어를 사용할 수 있습니다.
    • 두 파일이 모두 없다면 root 사용자만 at 명령어를 사용할 수 있습니다.
       
  2. at 명령어 옵션
    -q <큐>: 작업을 위한 큐 지정(a~z, A~Z), 지정하지 않을 경우 기본값 "a", 높은 글자일수록 nice값 증가.
    -t <시간>: 형식 [[CC]YY]MMDDhhmm[.ss]
    -f <실행파일>: 지정된 실행파일 실행
    -m: 작업이 완료되면 사용자에게 메일로 통보
    -M: 작업이 완료되도 사용자에게 이메일을 보내지 않음
    -l: 예약된 작업 목록을 보여준다 (== `atq`)
    -d <작업번호>: 예약된 작업 삭제 (== `atrm <작업번호>`)
    -r <작업번호>: 예약된 작업 삭제 (== `atrm <작업번호>`)
    
  3. at 명령어 예시
    • at 명령 프롬프트에서 예약 작업 등록: yyyy-mm-dd hh:mm에 입력된 명령어 실행
      $ at hh:mm yyyy-mm-dd 
      at> 명령어 줄 입력
      at> <EOT>(Ctrl+D)
      
      $ at 23:59 2021-12-31
      at> echo "Happy new year" > ~/greeting.txt
      at> <EOT>(Ctrl+D)
      
    • yyyy-mm-dd hh:mm에 지정된 실행파일 실행
      at hh:mm yyyy-mm-dd -f <file_name>
      
      $ at 23:59 2021-12-31 -f <file_name>
      
    • 지금으로부터 입력된 숫자의 분/시/일/주 이후에 지정된 실행파일 실행
      $ at now+숫자 [minutes | hours | days | weeks] -f <file_name>
      
      #1분 이후에 지정된 실행파일 실행
      $ at now+1 minutes -f <file_name>
      
    • 지정된 날짜의 특정한 시간에 지정된 실행파일 실행
      $ at 시간 [ today | tomorrow | MMM dd) -f <file_name>
      
      $ at 12am today -f <file_name>
      $ at 12am tomorrow -f <file_name>
      $ at 12am Jul 31 -f -f <file_name>
      $ at 4:30pm Jul 31 -f -f <file_name>
      
    • -f <file_name> 대신 파이프 라인으로 실행 명령어 지정
      $ echo "shutdown -h now" | at 12am tomorrow
      

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다