리눅스 정보실

리눅스 at 명령어로 예약 작업 관리하기 실무 가이드

고지존 2025. 8. 12. 17:12
반응형

리눅스에서 단발성(한 번만 실행) 예약 작업을 처리할 때 가장 간단한 도구가 at 명령어와 atd 데몬입니다. 이 글에서는 설치부터 기본 사용법, 관리, 환경 변수 주의사항, 그리고 실무에서 바로 쓸 수 있는 예제까지 자세히 설명합니다.

1. at / atd 개요

at는 특정 시간에 단 한번 명령을 실행하는 예약 도구입니다. 반복 예약은 cron이나 systemd timer가 더 적합합니다. at 명령어로 명령을 예약하면, atd가 해당 시간에 실행해 줍니다.

2. 설치 및 서비스 확인

# 설치 (배포판별 명령어)
sudo yum install -y at      # Rocky, CentOS 등 RHEL 계열
sudo apt-get install -y at  # Debian, Ubuntu 등

# 서비스 시작 및 활성화
sudo systemctl enable --now atd
sudo systemctl status atd

3. 기본 사용법

1분 뒤에 명령 실행 예약 (파이프로 입력)

echo "echo hello >> /tmp/at-test.log" | at now + 1 minute

 

명령 어 실행 및 결과값

 

대화형 예약 (명령 직접 입력, Ctrl+D로 종료)

at 14:30
at> /usr/local/bin/backup.sh
at> <Ctrl-D>

4. 자주 쓰는 시간 표현

  • now + 2 hours
  • now + 1 day
  • noon, midnight, teatime
  • 09:00 2025-08-15 (특정 날짜+시간)

5. 예약 작업 목록과 삭제

예약 목록 확인

atq

작업 삭제 (번호 N)

atrm N

atq 출력의 첫 번째 열이 작업 번호입니다.

6. 환경 변수 및 PATH 주의

at 작업은 비로그인 셸 환경에서 실행되어 환경 변수가 다를 수 있습니다.

  • 절대 경로 사용 권장 (예: /usr/bin/python3)
  • 명령어 앞에 PATH 명시적으로 지정
echo "PATH=/usr/local/bin:/usr/bin; /usr/local/bin/myjob" | at 02:00
  • 로그인 셸처럼 실행하려면 bash -lc 사용
echo "bash -lc '/home/user/script.sh arg1 arg2'" | at 03:00

7. 스크립트 파일 입력과 이메일 알림

여러 줄 스크립트 파일 예약

at -f /home/user/job.sh 22:00

파이프로도 가능

cat <<'EOF' | at 05:00
#!/bin/bash
date >> /tmp/job.log
/usr/bin/rsync -az /data /backup
EOF

예약 작업 실행 결과는 시스템 메일로 전송될 수 있습니다(메일 설정 시).

8. 실전 예제: 월말 특정일 단발 작업

day=$(date -d "last day of this month" +%Y-%m-%d)
echo "/usr/local/bin/monthly-dump.sh" | at 02:00 $day

9. 문제 해결 팁

  • atd 서비스 실행 확인
  • /etc/at.allow 또는 /etc/at.deny로 예약 권한 제한 확인
  • 실행 실패 시 로그 확인 (/var/log/cron, /var/log/messages, journalctl)
  • 명령어 경로 문제 시 절대 경로로 지정하거나 스크립트 내 PATH 설정

10. at과 cron, systemd timer 비교

용도 도구 특징
단발성 작업 at 한 번만 실행
반복 작업 cron 분/시간 단위 반복
서비스 연계 systemd timer 서비스와 통합된 반복 예약

체크 부분

  1. at 패키지와 atd 서비스가 설치·활성화 되어 있는지 확인
  2. 사용자가 at 예약 권한이 있는지 확인 (/etc/at.allow, /etc/at.deny)
  3. 스크립트 내 절대 경로 또는 환경 변수 명시
  4. 실행 결과 수집용 메일이나 로그 준비

필요하면 배포판별 상세 튜닝(로그 위치, 패키지명 등)과 함께 추가 가이드도 만들어 드릴 수 있습니다. 궁금한 점 있으면 언제든 말씀해 주세요!

반응형