at定时任务

1)at是只执行一次,执行完后任务删除。at的守护进程atd会以后台模式运行,检查作业队列来运行。
2)默认 atd每60秒巡逻一次,有作业时候,检查作业时间,如果和当前时间一样,就执行任务
3)在使用at命令的时候,一定要保证他的守护者atd进程的启动。用ps -ef | grep atd来查看atd是否在运行。

at命令格式
at 选项 时间
Ctrl + D 表示输入命令结束


at命令的选项
-m 任务完成,发送邮件给用户
-I atq的别名,查看系统中有没有执行的任务
-d atrm的别名,删除任务
-v 显示任务被执行时间
-c 打印任务的内容到屏幕
-V 显示版本信息
-q<队列> 使用指定的队列
-f<文件> 从指定文件读入任务而不是从标准输入读入
-t<时间参数> 以时间参数的形式提交要运行的任务


at时间定义:
1)hh:mm(小时:分钟),当天的几点几分去执行,如果过了今天的时间,就明天再执行
2)用一些模糊的时间词:midnight,noon, teatime.
3)采用12小时制,加上AM(上午)或PM(下午)
4)指定具体的时间,如 04:00 2021-03-1

5)使用相对计时法,now+count time-units。now就是当前时间,time-units是时间单位,count是时间数量,如now + 5 minutes
6)直接使用today,tomorrow来指定完成命令的时间。

应用案例:
1)两天后的下午5点执行 /bin/ls /home
at 5pm + 2 days
/bin/ls /home
然后输入两次Ctrl + D

2)atq命令来查看系统中有没有执行的工作任务
atq

3)明天17点钟,输出时间到指定文件内,比如/root/date200.log
at 5pm tomorrow
date > /root/date200.log

4)两分种后输出时间到指定文件内 /root/date200.log
at now + 2 minutes
date > /date200.log

5)删除已经设置的任务
atrm 编号

原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14281457.html