리눅스에서 단발성(한 번만 실행) 예약 작업을 처리할 때 가장 간단한 도구가 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 hoursnow + 1 daynoon, midnight, teatime09: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)필요하면 배포판별 상세 튜닝(로그 위치, 패키지명 등)과 함께 추가 가이드도 만들어 드릴 수 있습니다. 궁금한 점 있으면 언제든 말씀해 주세요!
| 리눅스 SSH 접속 포트 변경 및 보안 강화 방법 (0) | 2025.08.19 |
|---|---|
| 리눅스 포트 확인 방법 ss, netstat, lsof (2) | 2025.08.18 |
| Fail2ban 설정 가이드 실무 적용과 문제 해결 완벽 정리 (2) | 2025.08.11 |
| 리눅스 서버 접속 기록 확인하는 법 last 명령어 실전 사용법 정리 (3) | 2025.07.31 |
| 빠른 서버 포트 확인 netstat 관련 옵션으로 쉽게 끝내기 (2) | 2025.07.29 |