리눅스에서 단발성(한 번만 실행) 예약 작업을 처리할 때 가장 간단한 도구가 at
명령어와 atd
데몬입니다. 이 글에서는 설치부터 기본 사용법, 관리, 환경 변수 주의사항, 그리고 실무에서 바로 쓸 수 있는 예제까지 자세히 설명합니다.
at
는 특정 시간에 단 한번 명령을 실행하는 예약 도구입니다. 반복 예약은 cron
이나 systemd timer
가 더 적합합니다. at
명령어로 명령을 예약하면, atd
가 해당 시간에 실행해 줍니다.
# 설치 (배포판별 명령어)
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
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>
now + 2 hours
now + 1 day
noon
, midnight
, teatime
09:00 2025-08-15
(특정 날짜+시간)예약 목록 확인
atq
작업 삭제 (번호 N)
atrm N
atq
출력의 첫 번째 열이 작업 번호입니다.
at
작업은 비로그인 셸 환경에서 실행되어 환경 변수가 다를 수 있습니다.
/usr/bin/python3
)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
여러 줄 스크립트 파일 예약
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
예약 작업 실행 결과는 시스템 메일로 전송될 수 있습니다(메일 설정 시).
day=$(date -d "last day of this month" +%Y-%m-%d)
echo "/usr/local/bin/monthly-dump.sh" | at 02:00 $day
/var/log/cron
, /var/log/messages
, journalctl
)용도 | 도구 | 특징 |
---|---|---|
단발성 작업 | at | 한 번만 실행 |
반복 작업 | cron | 분/시간 단위 반복 |
서비스 연계 | systemd timer | 서비스와 통합된 반복 예약 |
/etc/at.allow
, /etc/at.deny
)필요하면 배포판별 상세 튜닝(로그 위치, 패키지명 등)과 함께 추가 가이드도 만들어 드릴 수 있습니다. 궁금한 점 있으면 언제든 말씀해 주세요!
Fail2ban 설정 가이드 실무 적용과 문제 해결 완벽 정리 (2) | 2025.08.11 |
---|---|
리눅스 서버 접속 기록 확인하는 법 last 명령어 실전 사용법 정리 (3) | 2025.07.31 |
빠른 서버 포트 확인 netstat 관련 옵션으로 쉽게 끝내기 (2) | 2025.07.29 |
서버 느릴 때 확인하는 ps 명령어 조합 – Rocky 리눅스 실전 방법 (3) | 2025.07.28 |
Rocky Linux 방화벽 설정 후 netstat로 연결 확인하기 (2) | 2025.07.26 |