介绍
定时任务,指定一个时间执行一个任务,只能执行一次
centos安装
centos系统中不支持 at 命令,需要安装
yum -y install at
确认atd守护进程已经启动
atd守护进程是at命令必须依赖的进程,如果它没有启动,at命令也无法正常工作。在终端输入以下命令来检查atd守护进程是否正在运行:
service atd status
下图说明正常运行:
下图说明没运行:
启动
如果atd守护进程没有运行,则需要启动它。在终端输入以下命令:
service atd start
这个命令会启动atd守护进程,使得at命令可以正常工作。
命令
at [参数] [时间]
常见参数:
-m :当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I :atq的别名
-d :atrm的别名
-v :显示任务将被执行的时间
-c :打印任务的内容到标准输出
-V :显示版本信息
-q :后面加<列队> 使用指定的列队
-f :后面加<文件> 从指定文件读入任务而不是从标准输入读入
-t :后面<时间参数> 以时间参数的形式提交要运行的任务
例子
指定时间执行
13:34 分执行 date 命令,并将命令结果保存到 /at.log 文件中
提示:因为是定时任务,所以不能打印到控制台中,因为看不到结果,只能保存到文件中
执行下面命令:
at 13:34
然后输入任务,在家目录中,创建文件 at.log,内容是当时的时间
date >> ~/at.log
输入 ctrl+d 退出编辑
查看定时任务
at -l
执行结果:
6 Tue Dec 3 13:48:00 2024 a root
查看定时结果
tail -f /at.log
时间格式
时间:定义出什么时候要进行at的任务,格式有:
1、HH:MM
说明:在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
ex> 04:00
2、HH:MM YYYY-MM-DD
说明:规定在某年某月的某一天的特殊时刻进行该项任务
ex> 04:00 2009-03-17
3、HH:MM[am|pm] [Month] [Date]
说明:规定在某年某月某日的某时刻进行该项任务
ex> 04pm March 17
4、HH:MM[am|pm] + number [minutes|hours|days|weeks]
说明:规定在某个时间点再加多少时间后才进行该项任务
ex> now + 5 minutes
ex> 04pm + 3 days
5、now + number [minutes|hours|days|weeks]
at now + 1minutes
at> date >> at.log
参考:
https://www.cnblogs.com/gzchenjiajun-php/articles/5101972.html
https://www.idc.net/help/147009/


