at — 일회성 예약 실행
Linux / 자동화 및 예약 작업 / at.html
💬 "at 명령어"
at은 한 번만 실행되는 예약입니다. cron과 달리 반복되지 않습니다.
트래픽이 적은 시각에 재시작·점검을 예약할 때 씁니다.
- 개념: 지정한 시각에 한 번 명령을 실행합니다.
- 시각 지정: '02:30' 또는 'now + 10 minutes' 형식을 씁니다.
- 목록: atq로 예약 목록을 봅니다.
- 취소: atrm으로 예약을 취소합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
at <시각> | 해당 시각에 실행할 작업을 입력 모드로 받습니다 |
atq | 예약 목록 확인 |
atrm <번호> | 예약 취소 |
-f <파일> | 스크립트 파일을 예약합니다 |
필수 명령어 조합 3가지
echo '/opt/app/bin/restart.sh' | at 03:30— 새벽 03:30에 재시작 예약atq— 예약 목록 확인atrm 7— 7번 예약 취소
💬 "같은 문제 재발 방지까지 고려한 예시 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 예약
시각과 명령을 지정합니다.
echo '/opt/app/bin/restart.sh > /tmp/restart.log 2>&1' | at 03:30
2단계 · 확인
예약 목록을 봅니다.
atq
3단계 · 취소/검증
필요하면 취소하고 결과 로그를 확인합니다.
atrm 7 ; cat /tmp/restart.log
실무에서는 이렇게 씁니다
1. 트래픽 낮은 시각 재시작
상황 — 주간 점검 창에 서비스를 재시작해야 합니다.
echo 'systemctl restart myapp' | at 04:00
결과 — 04:00에 한 번 재시작이 실행됩니다.
포인트 — 재시작 후 헬스체크를 같은 스크립트에 넣어 자동 검증합니다.
2. 임시 작업 예약
상황 — 30분 뒤 일회성 정리를 원합니다.
echo '/opt/app/bin/cleanup.sh' | at now + 30 minutes
결과 — 30분 뒤 한 번 실행됩니다.
포인트 — atd 서비스가 꺼져 있으면 예약이 실행되지 않으니 확인합니다.
주의할 점
- atd 서비스가 중지되어 있으면 예약이 실행되지 않습니다.
- 출력 리다이렉션을 안 하면 결과를 볼 수 없습니다.
- 재부팅을 넘겨 예약이 유지되는지 확인(일부 환경은 atd만으로는 부족)이 필요합니다.
실제 실행 화면
새벽 04:00 재시작 작업을 예약하고 목록을 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.