웹사이트 검색

Linux에서 'at' 명령을 사용하여 특정 시간 또는 나중에 작업을 예약하는 방법


cron 작업 스케줄러 대신 at 명령을 사용하면 구성 파일을 편집하지 않고도 주어진 시간에 한 번 실행되도록 명령을 예약할 수 있습니다.

유일한 요구 사항은 이 유틸리티를 설치하고 실행을 시작 및 활성화하는 것입니다.

yum install at              [on CentOS based systems]
sudo apt-get install at     [on Debian and derivatives]

그런 다음 부팅 시 at 서비스를 시작하고 활성화합니다.

--------- On SystemD ---------
systemctl start atd
systemctl enable atd

--------- On SysVinit ---------
service atd start
chkconfig --level 35 atd on

atd가 실행되면 다음과 같이 명령이나 작업을 예약할 수 있습니다. 다음 분이 시작되면 4개의 핑 프로브를 www.google.com으로 보내려고 합니다(예: 22:20:13인 경우 명령은 22:21:00에 실행되며 결과를 이메일(-m, Postfix 또는 이에 상응하는 항목 필요)을 통해 명령을 호출하는 사용자에게 보고합니다.

echo "ping -c 4 www.google.com" | at -m now + 1 minute

-m 옵션을 사용하지 않기로 선택한 경우 명령은 실행되지만 표준 출력에는 아무것도 인쇄되지 않습니다. 그러나 출력을 파일로 리디렉션하도록 선택할 수도 있습니다.

또한 at에서는 지금, 정오(12:00), 자정(00:00) 등 고정 시간을 허용할 뿐만 아니라 사용자 정의 2자리(시간을 나타냄) 및 4자리 시간(시 및 분).

예를 들어,

오늘 오후 11시(또는 현재 날짜가 오후 11시보다 큰 경우 내일)에 updatedb를 실행하려면 다음을 수행하세요.

echo "updatedb" | at -m 23

오늘 23:55에 시스템을 종료하려면(이전 예와 동일한 기준이 적용됨):

echo "shutdown -h now" | at -m 23:55

첫 번째 예와 같이 + 기호와 원하는 시간 지정을 사용하여 분, 시간, 일, 주, 월 또는 연 단위로 실행을 지연할 수도 있습니다.

시간 사양은 POSIX 표준을 따릅니다.

요약

경험상 명령을 실행하거나 잘 정의된 시간에 주어진 작업을 한 번만 실행하려는 경우에는 cron 작업 스케줄러 대신 at을 사용하십시오. 다른 시나리오의 경우 cron을 사용하세요.

다음으로, openssl을 사용하여 tar 아카이브 파일을 암호화하는 방법을 다루고 그 때까지 Tecmint에 연결을 유지합니다.