一次性计划任务,顾名思义,就是预设某个时间点执行特定任务,设置的任务只会执行一次,其原理是调用的是at命令
如果需要周期性执行计划任务,需要使用crond命令
命令格式:at [HH:MM] [yyyy-mm-dd]
任务:现在我们需要在14:50分统计系统进程数并将结果输出到/opt目录下的ps.txt文件中
[root@localhost ~]# yum -y install at ##安装at
[root@localhost ~]# date ##查看系统时间
2020年 07月 01日 星期三 14:49:22 CST
[root@localhost ~]# at 14:50 2020-07-01 ##设置计划任务执行的时间
at> ps aux | wc -l > /opt/ps.txt ##计划任务实行内容
at> <EOT> ##输入完成后按键盘Ctrl+D提交任务
job 10 at Wed Jul 1 14:50:00 2020
[root@localhost ~]# atq ##查看已设置的计划任务
10 Wed Jul 1 14:50:00 2020 a root
[root@localhost ~]# cat /opt/ps.txt ##待到设置的预定时间14:50后,查看是否已经执行成功
132 ##任务执行成功
若在设置一次性计划任务时提示:Can’t open /var/run/atd.pid to signal atd. No atd running? 如何解决?
原因分析:一般是因为at命令调用的是atd进程,如果atd进程没有开启那肯定是无法设置计划任务的。
解决方法:首先查看atd状态:/etc/init.d/atd status
发现没有这个文件,修改atd服务的默认启动等级:chkconfig --level 35 atd on
启动atd服务:service atd start
再次执行一次性计划任务发现已经可以成功添加任务了
备注:atd是linux下一次性定时计划任务命令的守候进程