Computer >> 컴퓨터 >  >> 스마트폰 >> Linux

Linux 'at' 명령어로 작업 예약하기: 한 번만 실행되는 스케줄링 완벽 가이드

이 가이드에서는 Linux의 at 명령어를 사용하여 작업을 미래의 특정 시점에 자동으로 실행되도록 예약하는 방법을 소개합니다.

작업 스케줄링은 Linux 서버 관리에서 빼놓을 수 없는 핵심 요소입니다. 앞서 cron 명령어를 활용한 작업 예약 방법을 다룬 적이 있는데, 이번에는 그 대안인 at 명령어를 살펴보겠습니다. 두 명령어의 가장 큰 차이점은 실행 방식에 있습니다. cron은 작업을 반복적으로 실행하므로 별도로 재예약할 필요가 없지만, at은 단 한 번만 실행되도록 작업을 예약합니다. 두 명령어 모두 저마다의 용도가 있으므로, 둘 다 제대로 이해해 두는 것이 좋습니다.

at 데몬(atd) 확인 및 시작

at 명령어로 한 번만 실행될 작업을 예약하는 방법을 알아보겠습니다. 먼저 at 데몬(atd)이 실행 중인지 아래 명령어로 확인합니다.

# ps -ef | grep atd
root 8231 1 0 18:10 ? 00:00:00 /usr/sbin/atd

만약 atd가 실행되고 있지 않다면 다음 명령어로 데몬을 시작할 수 있습니다.

# /etc/init.d/atd start

at 명령어로 작업 예약하기

데몬이 성공적으로 시작되었다면, 두 가지 옵션을 조합하여 at 작업을 예약할 수 있습니다. -f 옵션은 실행할 파일을 지정하고, -v 옵션은 실행 시각을 지정합니다. 예를 들어 오후 6시 30분에 셸 스크립트 shellscript.sh를 실행하고 싶다면 다음과 같이 입력합니다.

# at -f shellscript.sh -v 18:30

at 명령어로 예약한 스크립트는 지정된 시간에 딱 한 번 실행된 후 해당 예약이 자동으로 삭제됩니다. 따라서 반복 실행이 필요한 작업이라면 cron을 사용하는 것이 더 적합합니다.

자연어 시간 표현으로 예약하기

at 명령어의 매력적인 점 중 하나는 사람이 읽기 쉬운 영어식 시간 표현을 그대로 인식한다는 것입니다. 다음과 같은 문법으로도 작업을 예약할 수 있습니다.

# at -f shellscript.sh 10pm tomorrow → 내일 오후 10시
# at -f shellscript.sh 2:50 tuesday → 화요일 2시 50분
# at -f shellscript.sh 6:00 july 11 → 7월 11일 6시
# at -f shellscript.sh 2:00 next week → 다음 주 2시

참고로 현재 예약된 작업 목록은 atq 명령어로 확인할 수 있으며, 예약을 취소할 때는 atrm [작업번호] 명령어를 사용하면 됩니다. 이처럼 at 명령어를 활용하면 일회성 유지보수 작업이나 배치 스크립트를 손쉽게 자동화할 수 있습니다.