linux at定时任务

介绍

定时任务,指定一个时间执行一个任务,只能执行一次

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/


原文出处:/show_1GW9WjJ1j7H.html