在 Linux 系统中,at 命令用于将要运行的命令放入一个任务队列,以便在指定的时间执行一次性的任务。这个命令通常用于延迟执行一些任务,例如在特定时间运行脚本或命令。
常用的参数和示例:
常用参数:
- -l 或 --list:列出当前所有已排定的任务。
- -d <job> 或 --delete <job>:删除指定的任务。
- -c <job> 或 --check <job>:检查指定任务的状态。
示例:
- 列出当前所有已排定的任务:
at -l
- 删除指定的任务(假设任务号为 3):
at -d 3
- 检查指定任务的状态(假设任务号为 2):
at -c 2
- 创建一个在未来的时间执行的任务(例:在 2 小时后执行 backup.sh 脚本):
echo "bash /path/to/backup.sh" | at now + 2 hours
- 创建一个任务,将任务的输出发送给指定用户(例:执行 report.sh 脚本并将输出发送给用户 user1):
echo "bash /path/to/report.sh" | at now + 1 day -m user1
请注意,at 命令的可用性可能会因不同的 Linux 发行版而有所不同。
at 命令在 Linux 系统中优点,让它在某些情况下非常有用:
- 延迟执行: at 命令允许您将要执行的命令排队,在将来的某个指定时间执行。这对于在未来的某个时间点自动执行一次性任务非常有用。
- 一次性任务: at 命令适用于执行一次性任务,即一次性运行的命令。它并不适合需要周期性执行的任务,比如定时任务。
- 灵活性: 在 at 命令中指定执行任务的时间,格式是绝对时间(例如 "2023-07-20 10:30")或相对时间(例如 "now + 1 hour")。这使得它非常灵活,根据需求来安排任务执行时间。
- 无需一直保持终端打开: 与像 cron 这样的周期性任务不同,at 命令让您在安排任务后关闭终端或退出登录,而任务将会在指定的时间自动执行,不需要您保持终端会话打开。