Linux의 At 명령

Linux의 At 명령

2022-05-31 last update

7 minutes reading terminal at
at 명령행 유틸리티로 특정 시간에 실행할 수 있는 명령입니다.at를 사용하여 작성한 작업은 한 번만 수행됩니다.본고에서 우리는 at 및 그 부대 실용 프로그램batch, atq, atrm을 어떻게 사용하여 다음에 실행될 작업을 보고, 삭제하고, 만드는지 설명할 것이다.

설치

릴리스에 따라 at Linux 시스템에 있을 수도 있고 없을 수도 있습니다.설치되지 않은 경우at 릴리스 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.
  • Ubuntu에 설치at, Debian
    sudo apt update sudo apt install at
  • CentOS 및 Fedora
    sudo yum install at
  • 에 설치at, 프로그램 설치 후 확보atd,스케줄러 데몬이 실행되고 시작 시 실행되도록 설정됩니다.
    sudo systemctl enable --now atd

    어떻게 at 명령을 사용합니까

    at 명령의 단순화 구문은 다음과 같습니다.
    at [OPTION...] runtime
    
    at 명령은 명령행 매개 변수로 작업을 수행하고자 하는 날짜와 시간runtime과 표준 입력에서 실행하고자 하는 명령을 사용합니다.오전 9시에 실행될 작업을 만듭니다.
    at 09:00
    Enter 를 클릭하면 at 명령 프롬프트가 표시됩니다. 보통 at> 로 시작됩니다.명령이 실행될 셸에 대한 경고도 표시됩니다.
    warning: commands will be executed using /bin/sh
    at>
    
    실행할 명령을 하나 이상 입력하십시오.
    tar -xf /home//file.tar.gz
    명령을 입력한 후 Ctrl-D 프롬프트를 누르고 작업을 저장하십시오.
    at> <EOT>
    job 4 at Tue May  5 09:00:00 2020
    
    명령은 작업 번호와 실행 시간과 날짜를 표시합니다.at 프롬프트에 명령을 입력하는 것 외에 실행할 명령을 전달할 수 있는 다른 방법이 있습니다.한 가지 방법은 사용 echo
    명령 파이프를 at로 전송:
    echo "command_to_be_run" | at 09:00
    다른 옵션은 Here document
    :
    at 09:00 <<ENDcommand_to_be_runEND
    표준 입력이 아닌 파일에서 명령을 읽으려면 파일 경로 뒤에 있는 -f 옵션을 사용하여 명령을 호출합니다.예를 들어 스크립트를 실행할 작업/home//script.sh을 만들려면 기본적으로 명령이 출력을 생성하면 작업이 완료되면 at 사용자에게 출력이 포함된 전자 메일을 보냅니다.at 옵션 호출-M을 사용하여 전자 메일 알림을 억제합니다.
    at 09:00 -f /home//script.sh
    -m 출력이 없더라도
    at 09:00 -M

    batch 명령

    batch 또는 별칭at -b 시스템 부하 레벨에서 허용되는 경우 작업을 배치하고 배치 대기열에서 작업을 수행합니다.기본적으로 작업은 시스템의 평균 부하가 1.5보다 적을 때 실행된다.데몬을 호출할 때 부하 값을 지정할 수 있습니다.시스템의 평균 부하가 지정한 부하보다 높으면 작업이 대기열에서 기다립니다.atd를 사용하여 작업을 만들려면 (adsbygoogle = window.adsbygoogle | []) 명령을 실행합니다.푸시({});
    at 09:00 -m

    실행 시간 지정

    batch 실용 프로그램은 광범위한 시간 규범을 받아들인다.시간, 날짜, 현재 시간의 증가분을 지정할 수 있습니다.
  • 시간 - 시간을 지정하려면 at 또는 HH:MM 양식을 사용하십시오.12시간의 시간 형식을 표시하려면 시간 후에 HHMM 또는 am 을 사용하십시오.pm, now, midnight 또는 noon(16:00) 등의 문자열도 사용할 수 있습니다.지정한 시간을 초과하면 작업은 다음날 실행됩니다.
  • 날짜 - 이 명령을 사용하면 지정된 날짜에 작업을 수행할 수 있습니다.월 이름 뒤에 날짜와 선택 연도를 사용하여 날짜를 지정할 수 있습니다.문자열, 예를 들어 teatime, today 또는 weekday를 사용할 수 있습니다.tomorrow, MMDD[CC]YY, MM/DD/[CC]YY 또는 DD.MM.[CC]YY 형식으로 날짜를 표시할 수도 있습니다.
  • 증량-[CC]YY-MM-DD포맷의 증량도 받아들인다. 그중at은 하나의 숫자이며, now + count time-unit는 다음과 같은 문자열 중 하나일 수 있다. count,time-unit,minutes 또는hours.
  • 시간, 날짜, 증량을 조합할 수 있습니다.다음은 몇 가지 예입니다.
  • 작업을 현재 시간보다 10분 늦은 다음 주 일요일로 설정합니다.
    echo "command_to_be_run" | batch
  • 작업을 이틀 뒤인 오후 1시에 실행합니다.
    at sunday +10 minutes
  • 작업을 2020년 10월 21일 12:30에 실행합니다.
    at 1pm + 2 days
  • 작업을 한 시간 후에 실행합니다.
    at 12:30 102120
  • days 옵션을 사용하여 weeks 에 날짜를 입력합니다.다음은 예입니다.
    at now +1 hours

    대기열 지정

    기본적으로 [[CC]YY]MMDDhhmm[.ss] 를 사용하여 만든 작업 계획은 -t 이라는 대기열에 있고, at 을 사용하여 만든 작업 계획은 a 대기열에 있습니다.쿼리의 이름은 batch부터 ba까지입니다.알파벳이 낮은 대기열의 정확도가 낮다는 것은 알파벳이 높은 대기열보다 우선순위를 가진다는 것을 의미한다.z 옵션을 사용하여 대기열을 지정할 수 있습니다.예를 들어, A 대기열에 작업을 설정하려면
    at -t 202005111321.32

    중지된 작업 나열 중

    사용자의 일시 중지 작업 실행 Z 또는 -q 명령을 표시합니다.
    at monday +2 hours -q L
    출력은 모든 작업을 줄마다 표시합니다.각 행에는 작업 번호, 날짜, 시간, 대기열 문자 및 사용자 이름이 포함됩니다.
    atq
    관리 사용자로 호출될 때 L 모든 사용자의 마운트 작업을 표시합니다.

    중지된 작업 삭제

    중지된 작업을 삭제하려면 atq 또는 at -l 명령을 호출하고 작업 번호를 따르십시오.예를 들어, 9 번호의 작업을 삭제하려면
    9	  Tue May  5 12:22:00 2020 a 
    12	Wed Oct 21 12:30:00 2020 a 
    15	Tue May  5 09:00:00 2020 a 
    6	  Tue May  5 09:00:00 2020 a 
    13	Mon May  4 23:08:00 2020 a 
    11	Wed Jul  1 10:00:00 2020 a 
    4	  Tue May  5 09:00:00 2020 a 
    

    사용자 제한

    atqatrm 파일을 사용하여 작업을 만들 수 있는 사용자at -r 또는 /etc/at.deny 명령을 제어할 수 있습니다.이 파일들은 사용자 이름 목록으로 구성되어 있으며, 줄마다 사용자 이름이 하나씩 있습니다.기본적으로 /etc/at.allowfile exists
    또한 비어 있습니다. 이것은 모든 사용자가 at 명령을 사용할 수 있음을 의미합니다.특정 사용자의 권한을 거부하려면 이 파일에 사용자 이름을 추가합니다.batch 파일이 있는 경우 이 파일에 나열된 사용자만 /etc/at.deny 명령을 사용할 수 있습니다.두 파일 모두 존재하지 않으면 at 명령은 관리 권한이 있는 사용자만 사용할 수 있습니다.

    결론

    /etc/at.allow 유틸리티는 표준 입력에서 명령을 읽고 나중에 실행합니다.crontab 과 다름
    , at를 사용하여 만든 작업은 한 번만 수행됩니다.터미널at 명령 유형at에 대한 사용 가능한 모든 옵션에 대한 자세한 정보.질문이 있으시면 언제든지 논평을 주십시오.