功能描述
在Linux系统中,at命令用于在指定时间执行任务。at命令从标准输入设备(键盘)或指定文件中读取命令,然后再指定的时间执行这些命令。相关命令有atq(显示带执行的作业)、atrm(删除待执行的作业)及batch。
命令语法
at [选项] [时间参数]
服务脚本:/etc/init.d/atd
选项含义
选项
含义
-f
从指定文件中读取要执行的命令。
-l
显示等待执行的作业,与atp命令的作用相同。
-d
删除待执行的作业,与atrm命令的作用相同。
-m
将at命令执行的结果以E-mail的方式传回。
-c
在命令行上列出的作业标准输出
-t
在指定时间提交作业运行,时间格式为[[CC]YY]MMDDhhmm
时间参数
时间参数
描述
HH:MM
比如04:00代表4:00AM。如果时间已过,就会在第二天的这一时间执行
Midnight
代表12:00AM(即00:00)
Noon
代表12:00PM(即12:00)
Teatime
代表4:00PM(即16:00)
英文月名 日期 年份
比如“January 15 2014”代表2014年1月15日,年份可有可无
MMDDYY、MM/DD/YY或MM.DD.YY
比如“011514”代表2014年1月15日
now +时间
时间以minutes、hours、days或weeks为单位,比如“now +5 days”代表命令在5天之后的此时此刻执行
注意事项:
默认情况下,任何用户都可以使用at命令,但是为了安全起见,就应当对用户使用at命令进行一些限制。如果at.allow文件存在,就只有在该文件中的用户才可以使用at命令。
示例
在5天之后的此时此刻将/root/a文件复制到/home目录下。
[root@localhost ~]# at now +5 days
at> cp /root/a /home //命令输入完毕按回车键
at> //在此按[Ctrl+d]
在脚本方式执行at作业,脚本文件为/root/scriptl
[root@localhost ~]# echo "cp /root/a /home"> /root/scriptl
//创建/root/scriptl脚本文件
[root@localhost ~]# at now -f /root/scriptl
使用echo命令向at命令提交作业
[root@localhost ~]# echo hello>/root/a|at now
显示等待执行的作业
[root@localhost ~]# at -l
1 2018-05-05 17:50 a root
删除标识号为1的作业
[root@localhost ~]# at -d 1
显示版本信息
[root@localhost ~]# at -V
at version 3.1.10
设置当天10分钟后执行
[root@localhost ~]# at now +10min
设置在2016年1月14号晚上22:00自动关机
[root@localhost ~]# at 22:00 2016-1-14
设置7天后晚上22:00自动关机
[root@localhost ~]# at 22:00 +7 days
设置明天晚上22:00重启httpd服务
[root@localhost ~]# at 22:00 tomorrow