Linux at 定时任务

时间:2021-12-31 02:27:38

命令格式:
at[参数][时间]  请注意系统时间是UTC

命令功能:
在一个指定的时间执行一个指定任务,只能执行一次。假如该时间已过去,那么就放在第二天执行。

/var/spool/mail/这里是任务执行后,反馈的邮件

/etc/at.allow 与 /etc/at.deny 设置at的使用者

开启atd进程
ps -ef | grep atd
启动atd服务 /etc/init.d/atd start or restart
设置开机自启动 chkconfig atd on

命令参数:
-m 当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I atq的别名
-d atrm的别名
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V 显示版本信息
-q<列队> 使用指定的列队
-f<文件> 从指定文件读入任务而不是从标准输入读入
-t<时间参数> 以时间参数的形式提交要运行的任务

at时间格式:
HH:MM 在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该项任务
HH:MM[am|pm] [Month] [Date] 例如 05:00pm March 20 强制在某年某月某日的某时刻进行该项任务
HH:MM[am|pm] + number [minutes|hours|days|weeks] 在某个时间点再加几个时间后才进行该项任务。
例如 now + 5 minutes 例如 04pm + 3 days

Ctrl D 退出at任务设置
$ at 01:00 2017-01-01
at> df | grep dev >/tmp/devUsed.txt
at> <EOT>
job 1 at 2017-01-01 01:00

设置文件执行
$ at -f /tmp/a.sh 06:00 2017-01-01
job 8 at 2017-01-01 06:00

查看系统没有执行的工作任务
$ at -l
8 2017-01-01 06:00 a wx
1 2017-01-01 01:00 a wx

显示任务内容,最后一行是设置的任务,这里的8指的是job编号
at -c 8

删除任务,8是job编号
at -d 8