首页/系统/Linux 运维命令速查/at 一次性定时任务
定时任务与计划50 条

at 一次性定时任务

安排「一次性」在未来某时刻执行的任务,适合维护窗口、延迟重启、临时提醒;任务入队后由 atd 守护负责执行。

Linux 运维命令速查系统更新于 2026-10-13

at 是什么

at 把一条命令或一个脚本提交到任务队列,由 atd 守护进程在指定时刻以提交者的身份执行一次。它与 cron 的分工很清楚:cron 负责固定周期重复执行,at 负责「某个时刻跑一次」。维护窗口里的延迟重启、半夜执行的一次性备份、临时抓包取证,都适合用它。

基本信息

适用平台Linux(需安装 at 包并启动 atd 服务)
命令语法at 时间表达式 / at -f 脚本 时间
时间写法能识别 22:00、midnight、teatime、now + 30 minutes、5pm + 3 days 等自然语言
任务管理at -l(等同 atq)列出队列、at -d(等同 atrm)删除任务、at -c 查看任务内容
执行身份提交者的身份与提交时的环境,PATH 等变量都按当时的值保存
持久化任务写在 /var/spool/at 下,机器重启后仍然有效

典型使用场景

  • 维护窗口延迟操作:下班后自动重启服务或切换配置
  • 一次性备份:大文件迁移或归档在业务低峰执行
  • 延迟提醒与巡检:某一时刻触发一次健康检查
  • 临时取证:在问题复现的时间点自动抓包或导出现场
  • 避免手工等待:把「半小时后执行」这类动作交给队列而不是守着终端

时间表达与用法

时间表达与用法
echo '/opt/scripts/reboot-safe.sh' | at 03:00     # 今天凌晨 3 点执行一次
at now + 30 minutes                               # 30 分钟后
at 5pm + 3 days                                   # 三天后下午 5 点
at midnight                                       # 今晚 24:00
at -f /opt/scripts/backup.sh 02:30                # 直接指定脚本文件
at -m -f /opt/scripts/check.sh 09:00              # -m 完成后给提交者发邮件
at -l                                             # 列出待执行任务
atrm 3                                            # 删除编号为 3 的任务

交互输入方式

交互输入方式
at 02:30
tar czf /backup/etc-$(date +%F).tgz /etc >> /var/log/at-backup.log 2>&1
<Ctrl-D>

时间写法与任务管理

写法含义注意
now + 30 minutes相对当前时间适合即时安排
22:00今天的 22 点已过则排到明天同一时刻
teatime16:00 的别名属于 at 支持的英文习惯用法
5pm + 3 days三天后的下午 5 点可组合相对与绝对表达
at -l 与 atrm列出与删除任务删除用的是任务编号,先列后删
at -c 编号查看任务完整内容用于确认环境变量与命令原文
at 任务只执行一次,需要重复执行请改用 cron 或 systemd timer。提交前确认 atd 已在运行:systemctl status atd,未启动时任务会被静默搁置,不报错也不执行。提交成功后系统会打印 job 编号,记下来便于用 atrm 取消;atq 与 at -l、atrm 与 at -d 完全等价。
at 会把任务的输出通过邮件发给提交者,容器与最小化系统里往往没有可用的邮件通道,输出就这样丢失。稳妥做法是在命令里显式重定向到日志文件(追加 2>&1),并保证目录存在。

易错点

  • at 的输入是命令列表而不是完整的 shell 脚本会话:交互输入里 cd、变量定义等行为受限,复杂逻辑用 -f 指定脚本文件
  • 容器与最小化系统常常没装 atd,提交后任务静默不执行,排查时先看服务状态
  • 任务的执行环境继承提交时的 PATH 变量,若提交者 PATH 与脚本预期不同,命令会报找不到
  • at 任务在 /var/spool/at 中持久存在,重启后仍会执行,删掉旧任务要记得 atrm
  • 系统时间被大幅调整或跨夏令时切换时,绝对时间写的任务会随之偏移

数据来源与参考

  • man 1 at
  • man 8 atd

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌