【linux at命令】在日常运维里,咱们经常遇到那种“不用长期跑,就现在特定时间干一次”的需求。比如凌晨 2 点自动备份数据库,或者明天早上 9 点半给服务器重启一下。这时候要是拿 `cron` 硬扛,不仅显得臃肿,还得担心以后忘了删。这就轮到 `at` 命令登场了。它属于 Linux 系统里的“一次性定时器”,主打一个简单直接。
其实 `at` 背后依赖的是 `atd` 守护进程。只要服务开着,你写的任务就会被扔到队列里排队执行。下面这篇内容不整那些虚的,直接上干货,帮你快速上手和排查问题。
一、核心用法与流程
使用 `at` 最经典的方式是进入交互模式。敲下命令后,终端会提示你输入任务内容,结束时按 `Ctrl+D` 提交。
基本交互示例:
```bash
$ at 10:00
at> /tmp/test.sh
at> ^D
job 12 at Mon Oct 24 10:00:00 2024
```
提交成功后,你会看到一行 `job xx at ...` 的回执。如果想批量提交文件里的任务,可以用 `-f` 参数,适合那些脚本已经写好的场景。
除了这种传统方式,其实还可以直接管道传入命令:
```bash
echo "ls > /tmp/log.txt"
```
这种方式更适合写脚本自动化调用,不用在那儿手动敲回车。
二、任务管理命令
任务排进队列后,总得能看见管得住吧?这里主要靠三个命令:查队列 (`atq`)、取消任务 (`atrm`)、查看详情 (`atsed` 等第三方工具,原生较少)。
atq: 就像 `jobs` 命令一样,列出所有待执行的一次性任务。可以看到 Job ID、提交时间、预计运行时间。
atrm: 如果排错单子了,赶紧用这个删掉。比如想删除 Job ID 为 5 的任务,直接输 `atrm 5`。
at -l: 查看具体的任务脚本内容(不同发行版支持度略有差异)。
这些命令不需要 root 权限就能对自己提交的任务操作,当然 root 可以管理所有。
三、时间格式是坑点
很多人用 `at` 容易翻车的地方就在时间写法上。它不像 cron 那么死板,支持的格式多但也杂。
| 写法类型 | 示例 | 含义说明 |
| : | : | : |
| hh:mm | `at 14:30` | 下午 2 点 30 分 (默认当天) |
| hh:mm:ss | `at 10:30:00` | 精确到秒,同上 |
| 指定日期 | `at 15:00 today` | 今天 15 点 |
| 相对时间 | `at now + 3 hours` | 从现在起 3 小时后 |
| 具体时刻 | `at 09:00 am` | 明确上午 (am/pm 需要小写或大写混用) |
| 绝对时间点 | `at 13 Dec 2024` | 指定年月日,默认晚上 24 点 |
避坑提示:如果你不写时区,系统通常默认为本地时间。但服务器如果是云环境,建议先确认一下 `date` 输出的时区对不对,不然任务可能早到了半小时你都不知道。
四、at 还是 cron?
有时候新手分不清这俩玩意儿。简单总结一句话:cron 是周期性的,at 是单次性的。
| 特性 | at 命令 | cron 服务 |
| : | : | : |
| 适用场景 | 临时、一次性任务 | 每天、每周固定重复任务 |
| 配置位置 | 内存队列 (/var/spool/at/) | 配置文件 /etc/crontab 或 /var/spool/cron/ |
| 维护难度 | 低 (用完即走) | 高 (需清理过期规则) |
| 优先级控制 | 支持 nice 值调整 | 通过启动脚本间接控制 |
| 错误通知 | 默认发送电子邮件 | 同样依赖邮件,但配置较复杂 |
| 服务依赖 | 需 atd 守护进程 | 需 crond 守护进程 |
如果你的任务是“每周一早晨开机自动同步 NTP”,别用 at;如果是“今晚服务器要维护,半夜把日志归档一下”,选 at。
五、常见故障排查
实际工作里,任务没跑起来的情况最常见。按下面顺序检查,90% 的问题都能解决。
1.守护进程挂了
很多时候 `atd` 根本没装,或者被停掉了。
```bash
systemctl status atd
或者在 CentOS/RedHat 下
service atd status
```
如果是 dead 状态,记得 `systemctl start atd` 并且设置开机自启。
2.邮件报错了
`at` 默认会把任务运行结果通过 mail 发给当前用户。如果邮箱服务(如 postfix)没配好,可能会报错 "mail system busy",但这不影响任务执行本身(除非任务强依赖邮件回传)。
3.权限不足
脚本里有 `sudo` 指令,但 `at` 运行环境里没有足够的 sudo 免密权限,会导致执行失败。最好把敏感操作写成无密码执行的子脚本。
4.路径问题
在交互式模式下输入的 `/home/user/script.sh`,如果当前用户不是脚本所有者,或者脚本没有执行权限(chmod +x),大概率会挂。建议在脚本第一行写明解释器 `!/bin/bash`,并加上全路径调用。
六、速查总结
最后为了方便查阅,整理了一个精简的速查表,平时拿出来对照就行。
| 功能 | 命令 | 备注 | |
| : | : | : | |
| 提交任务 | `at [time]` | 进入交互编辑模式 | |
| 直接管道 | `echo "cmd" \ | at [time]` | 非交互快速提交 |
| 查看队列 | `atq` | 显示 JobID 和时间 | |
| 删除任务 | `atrm | ID 从 atq 获取 | |
| 修改任务 | `atsed | 部分版本不支持,建议重提 | |
| 服务状态 | `systemctl status atd` | 确保守护进程 running | |
| 时间单位 | `+minutes/hours/days` | 支持相对时间计算 |
记住,`at` 是个好用的轻量级工具,别让它在你的系统角落里积灰。对于那种“搞完就忘”的临时任务,用它既干净又高效。只要注意守护进程的状态和脚本的执行权限,基本上就不会有意外。
免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。
-
AI添把火,凭什么会火? 当商业传播全面步入 AI 时代,用户获取品牌信息的路径正在发生颠覆性变革。过去,...浏览全文>>
-
核心信息:截至当前,人社部、财政部尚未出台 2026 年全国职工退休人员养老金统一上调文件,安徽省、池州市...浏览全文>>
-
山东威海 2026 年养老金政策分为职工基本养老保险与城乡居民基本养老保险两套独立体系,两项养老待遇的推进...浏览全文>>
-
2026 年海南海口企业退休、机关事业单位退休人员的职工养老金暂无调整落地文件,人社部、财政部尚未出台全国...浏览全文>>
-
截至当前,人社部、财政部尚未出台 2026 年企业、机关事业单位退休人员基本养老金全国统一上调文件,新疆维...浏览全文>>
-
当前天津市暂未确定 2026 年退休职工养老金补发与发放时间,人社部、财政部尚未出台全国统一的 2026 年职...浏览全文>>
-
当前新疆哈密 2026 年企业、机关事业单位退休职工养老金暂无调整落地文件,人社部、财政部尚未出台 2026 ...浏览全文>>
-
当前,人社部、财政部尚未出台 2026 年全国企业退休、机关事业单位退休人员养老金统一上调文件,上海市人社...浏览全文>>
-
目前人社部、财政部尚未发布 2026 年全国退休职工养老金统一调整文件,河北省人社厅、财政厅也没有出台本省...浏览全文>>
-
截至当前,人社部、财政部暂未发布 2026 年全国企业、机关事业单位退休职工养老金统一上调文件,河北省人社...浏览全文>>
- 新疆哈密2026年退休职工养老金调整文件情况调整细则全文,区分职工养老与城乡居民基础养老金提标政策
- 上海养老金2026年补发发放时间是什么时候,2026养老金调整尚未落地,发放节点参考往年规律
- 河北石家庄养老金2026年补发发放时间是什么时候,职工调待暂无时间表,城乡居民基础养老金启动提标
- 河北张家口养老金2026年补发发放时间是什么时候,职工养老金调待暂未发文,城乡居民基础养老金标准上调
- 山西大同养老金2026年补发发放时间是什么时候,职工养老金调待文件暂未下发,城乡居民基础养老金提标推进
- 内蒙古呼伦贝尔养老金2026年补发发放时间,呼伦贝尔城乡居民基础养老金上调至163元解读
- 内蒙古巴彦淖尔养老金2026年补发发放时间是什么时候,职工养老调待进展与城乡居民基础养老金政策解读
- 辽宁沈阳养老金2026年补发发放时间是什么时候,厘清职工养老金调待与城乡居民基础养老金提标差异
- 辽宁锦州养老金2026年补发发放时间,锦州城乡居民基础养老金上调至163元解读
- 江苏南通养老金2026年补发发放时间是什么时候,职工养老金调待文件暂未落地,城乡居民基础养老金提标推进
- 山西阳泉养老金2026年补发发放时间是什么时候,区分职工养老金调待和城乡居民基础养老金提标政策
- 山西晋中养老金2026年补发发放时间是什么时候,职工养老金调待暂无明确时间,城乡居民基础养老金实施提标
- 内蒙古包头养老金2026年补发发放时间是什么时候,职工养老金调待文件暂未出台,城乡居民基础养老金提标落地推进
- 内蒙古乌兰察布养老金2026年补发发放时间是什么时候,乌兰察布2026职工养老金调待补发时间预判与城乡居民养老提标解读
- 吉林辽源养老金2026年补发发放时间是什么时候,区分职工养老金调待与城乡居民基础养老金提标政策
- 江苏无锡养老金2026年补发发放时间是什么时候,分清职工养老金调待与城乡居民基础养老金提标政策
- 江苏徐州养老金2026年补发发放时间是什么时候,徐州2026职工养老金调待补发时间预判与城乡居民养老提标解读
- 江苏盐城养老金2026年补发发放时间是什么时候,职工养老调待进展与城乡居民基础养老金政策解读
- 浙江温州养老金2026年补发发放时间是什么时候,职工养老金调待暂无确定时间,城乡居民基础养老金实施提标
- 浙江嘉兴养老金2026年补发发放时间,嘉兴城乡居民基础养老金上调至163元解读
- 河北秦皇岛养老金2026年补发发放时间是什么时候,职工养老调待进展与城乡居民养老政策解读
- 山西朔州2026年养老金补发发放时间,朔州城乡居民基础养老金上调至163元解读
- 辽宁鞍山养老金2026年补发发放时间是什么时候,职工养老金调待文件暂未发布,城乡居民基础养老金提标有序推进
- 辽宁营口养老金2026年补发发放时间是什么时候,职工养老调待进展与城乡居民基础养老金政策解读
- 辽宁阜新养老金2026年补发发放时间是什么时候,分清职工养老金调待与城乡居民基础养老金提标政策
- 辽宁葫芦岛养老金2026年补发发放时间,葫芦岛城乡居民基础养老金上调至163元解读
- 吉林通化养老金2026年补发发放时间是什么时候,通化2026职工养老金调待补发时间预判与城乡居民养老提标解读
- 黑龙江齐齐哈尔养老金2026年补发发放时间,齐齐哈尔城乡居民基础养老金上调至163元解读
- 黑龙江大庆养老金2026年补发发放时间是什么时候,大庆2026职工养老金调待补发时间预判与城乡居民养老提标解读
- 黑龙江黑河养老金2026年补发发放时间,黑河城乡居民基础养老金上调至163元解读
- 江苏淮安养老金2026年补发发放时间,淮安城乡居民基础养老金上调至163元解读
- 浙江杭州养老金2026年补发发放时间是什么时候,职工养老金调待文件暂未出台,城乡居民基础养老金提标有序推进
- 安徽滁州养老金2026年补发发放时间是什么时候,职工养老金调待暂无确定时间,城乡居民基础养老金实施提标
- 安徽六安养老金2026年补发发放时间是什么时候,厘清职工养老金调待与城乡居民基础养老金提标两项政策
- 江西景德镇养老金2026年补发发放时间是什么时候,职工养老金调待暂无确定时间,城乡居民基础养老金实施提标
- 河南平顶山养老金2026年补发发放时间是什么时候,职工养老调待进展与城乡居民基础养老金政策解读
- 河南许昌养老金2026年补发发放时间是什么时候,许昌2026职工养老金调待补发时间预判与城乡居民养老提标解读
- 河南三门峡养老金2026年补发发放时间是什么时候,职工养老金调待暂无确定时间,城乡居民基础养老金迎来提标
- 湖北十堰养老金2026年补发发放时间,十堰城乡居民基础养老金上调至163元解读
- 湖北襄阳养老金2026年补发发放时间是什么时候,职工养老调待进展与城乡居民基础养老金政策解读


