文章目录
-
-
-
- [1. 基本用法](#1. 基本用法)
- [2. 常用参数](#2. 常用参数)
- [3. 用法举例](#3. 用法举例)
- [4. 注意事项](#4. 注意事项)
-
-
at 命令用于在指定的时间运行一次性任务。与 cron 的定期调度不同, at 适合处理临时或单次的任务调度。
1. 基本用法
- 语法:
bash
at [选项] <时间>
-
功能:
- 按照指定时间运行一次性任务。
- 管理待执行任务队列(查看、删除)。
- 借助
atd服务处理任务调度,需确保该服务正在运行。
-
此命令是否系统自带:系统默认自带,无需额外安装。
2. 常用参数
-l或atq:列出当前用户的所有待执行任务。-d <任务编号>或atrm:删除指定的任务。-c <任务编号>:显示指定任务的详细内容。-m:任务完成后发送邮件通知用户(如果系统支持邮件功能)。-f <文件>:从指定文件读取任务。-v:显示任务的运行时间。
3. 用法举例
-
在未来 5 分钟后执行一个命令:
bashecho "ls -l /tmp" | at now + 5 minutes -
指定日期和时间执行任务:
bashecho "echo 'Backup complete'" | at 14:00 2025-01-14 -
查看当前用户的任务队列:
bashatq -
删除编号为 2 的任务:
bashatrm 2 -
从文件中读取任务并调度:
bashat -f /path/to/script.sh 22:30 -
显示编号为 3 的任务内容:
bashat -c 3
4. 注意事项
-
at的调度时间可以用灵活的格式指定,例如now + 1 hour、midnight、noon等。 -
任务运行时默认环境变量可能与用户当前环境不同,需确保必要的环境变量正确设置。
-
at调度的任务会使用/bin/sh解释器执行,如果任务依赖其他解释器(如bash),需显式指定。atd服务必须启动才能执行任务,检查服务状态:bashsystemctl status atd -
默认情况下,
/etc/at.allow和/etc/at.deny文件可用来限制用户使用at命令。