24.3. at를 사용하여 특정 시간에 실행되도록 작업 예약
특정 시간에 한 번 실행되도록 작업이라고도 하는 일회성 작업을 예약하려면 at 유틸리티를 사용합니다.
사용자는 at 유틸리티를 사용하여 at 작업을 지정합니다. 그런 다음 atd 서비스에서 작업을 실행합니다.
24.3.1. 작업 준비에 대한 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
at 작업을 예약하기 전에 다음을 수행합니다.
at 패키지를 설치합니다.
yum install at
~]# yum install atCopy to Clipboard Copied! Toggle word wrap Toggle overflow atd서비스가 활성화됨 - 설치 시 - 부팅 시 자동으로 시작됩니다. 서비스를 비활성화한 경우 다음을 활성화합니다.systemctl enable atd.service
~]# systemctl enable atd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 현재 세션에 대해
atd서비스를 시작합니다.systemctl start atd.service
~]# systemctl start atd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
24.3.2. At 작업 예약 링크 복사링크가 클립보드에 복사되었습니다!
작업은 항상 일부 사용자가 실행됩니다. 원하는 사용자로 로그인하여 다음을 실행합니다.
at time
~]# at timeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시간을 시간 사양으로 바꿉니다.
특정 시간에 대한 자세한 내용은 (1) 도움말 페이지 및
/usr/share/doc/ at/timespec파일을 참조하십시오.예 24.1. 특정 시점의 시간 지정
작업을 15:00에 실행하려면 다음을 실행합니다.
at 15:00
~]# at 15:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow 지정된 시간이 경과하면 다음 날 동시에 작업이 실행됩니다.
2017년 8월 20일에 작업을 실행하려면 다음을 실행합니다.
at August 20 2017
~]# at August 20 2017Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
at 082017
~]# at 082017Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작업을 5일 후 실행하려면 다음을 실행합니다.
now + 5 days
~]# now + 5 daysCopy to Clipboard Copied! Toggle word wrap Toggle overflow 프롬프트
가표시되면 실행할 명령을 입력하고 Enter 키를 누릅니다.at 15:00 at> sh /usr/local/bin/my-script.sh at>
~]# at 15:00 at> sh /usr/local/bin/my-script.sh at>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실행할 모든 명령에 대해 이 단계를 반복합니다.
참고at>프롬프트에서 사용할 쉘을 표시합니다.warning: commands will be executed using /bin/sh
warning: commands will be executed using /bin/shCopy to Clipboard Copied! Toggle word wrap Toggle overflow at 유틸리티는 사용자의 SHELL 환경 변수 또는 사용자의 로그인 쉘 또는
/bin/sh에 먼저 발견된 쉘을 사용합니다.- 작업을 지정하려면 빈 줄에서 Ctrl+D를 누릅니다.
명령 집합 또는 스크립트가 정보를 표준 출력에 표시하려고 하면 출력이 사용자에게 이메일을 보냅니다.
보류 중인 작업 보기
보류 중인 작업 목록을 보려면 atq 명령을 사용합니다.
atq 26 Thu Feb 23 15:00:00 2017 a root 28 Thu Feb 24 17:30:00 2017 a root
~]# atq
26 Thu Feb 23 15:00:00 2017 a root
28 Thu Feb 24 17:30:00 2017 a root
각 작업은 다음 형식의 별도의 줄에 나열됩니다.
job_number scheduled_date scheduled_hour job_class user_name
job_number scheduled_date scheduled_hour job_class user_name
job_queue 열은 작업이 at 또는 batch 작업인지 여부를 지정합니다. 은 at,b 는 일괄 처리를 나타냅니다.
루트가 아닌 사용자는 자신의 작업만 볼 수 있습니다. root 사용자는 모든 사용자에 대한 작업을 확인합니다.
예약된 작업 삭제
예약된 작업을 삭제하려면 다음을 수행합니다.
atq명령을 사용하여 보류 중인 작업을 나열합니다.atq 26 Thu Feb 23 15:00:00 2017 a root 28 Thu Feb 24 17:30:00 2017 a root
~]# atq 26 Thu Feb 23 15:00:00 2017 a root 28 Thu Feb 24 17:30:00 2017 a rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 예약된 시간 및 사용자가 삭제할 작업을 찾습니다.
atrm명령을 실행하여 작업을 번호로 지정합니다.atrm 26
~]# atrm 26Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.3.2.1. At and Batch에 대한 액세스 제어 링크 복사링크가 클립보드에 복사되었습니다!
at 및 배치 명령에 대한 액세스를 제한할 수 있습니다. 이렇게 하려면 다음 규칙에 따라 사용자 이름을 /etc/at.allow 또는 /etc/at.deny 에 배치합니다.
- 두 액세스 제어 파일은 각 줄에 동일한 사용자 이름을 사용합니다.
- 두 파일에서 공백을 사용할 수 없습니다.
-
at.allow파일이 있는 경우 파일에 나열된 사용자만at또는일괄처리를 사용할 수 있으며at.deny파일은 무시됩니다. -
at.allow가 존재하지 않는 경우.deny에 나열된 사용자는또는atbatch에서 사용할 수 없습니다. -
root사용자는 액세스 제어 파일의 영향을 받지 않으며 항상at및batch명령을 실행할 수 있습니다.
액세스 제어 파일이 수정되면 )을 다시 시작할 필요가 없습니다. 사용자가 at 데몬(dat 또는 batch 명령을 실행하려고 할 때마다 액세스 제어 파일을 읽습니다.