at命令其实和crontab命令是基本类似的.
Linux的定时任务主要分为两种:
1. 执行一次:将在某个特定的时间执行的任务调度 at
2. 执行多次: 周期性的执行 crontab
at在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程。
基本参数:
-l: at -l 相当于atq, 列出目前系统上面的所有用户的 at 调度。
-d: at -d 相当于atrm, 可以取消一个在at调度中的工作。
-v: 可以使用较明显的数据格式列出at 调度中的任务列表
-c: 可以列出后面接的该项工作的实际命令内容。
-m: 当at的工作完成后,即使没有输出信息,以email 通知用户该工作已完成。
系统启动:
/etc/init.d/atd start
/etc/init.d/atd restart
实例1:三天后的下午 5 点 执行 命令
$at 1pm+1 days
at> who
at> <EOT>
job 2 at 2021-04-16 13:00
实例2:明天15点钟
$ at 15:00 tomorrow
at> ls
at> <EOT>
job 3 at 2021-04-16 15:00
实例3:计划任务设定后,用atq命令来查看系统没有执行工作任务
$ atq
1 2021-04-18 17:00 a root
2 2021-04-16 13:00 a root
3 2021-04-16 15:00 a root
实例4:删除已经设置的任务
$ atrm 2
$ atq (再次查看记录2已经被删除了)
1 2021-04-18 17:00 a root
3 2021-04-16 15:00 a root
结论:at的用法比较简单,感觉要实行复杂的任务就难于驾驭了,界面也没有crontab用法简单明了,因此在实际中at使用的频率比较少的。