linux at定时任务 作者:马育民 • 2024-12-03 13:35 • 阅读:10006 # 介绍 定时任务,指定一个时间执行一个任务,**只能执行一次** # centos安装 centos系统中不支持 at 命令,需要安装 ``` yum -y install at ``` ### 确认atd守护进程已经启动 atd守护进程是at命令必须依赖的进程,如果它没有启动,at命令也无法正常工作。在终端输入以下命令来检查atd守护进程是否正在运行: ``` service atd status ``` 下图说明正常运行: [![](https://malaoshi.top/upload/0/0/1GW9WVnSHGt.png)](https://malaoshi.top/upload/0/0/1GW9WVnSHGt.png) 下图说明没运行: [![](https://www.malaoshi.top/upload/0/0/1GW9WZ2kZRw.png)](https://www.malaoshi.top/upload/0/0/1GW9WZ2kZRw.png) ### 启动 如果atd守护进程没有运行,则需要启动它。在终端输入以下命令: ``` service atd start ``` 这个命令会启动atd守护进程,使得at命令可以正常工作。 # 命令 ``` at [参数] [时间] ``` ##### 常见参数: -m :当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出 -I :atq的别名 -d :atrm的别名 -v :显示任务将被执行的时间 -c :打印任务的内容到标准输出 -V :显示版本信息 -q :后面加<列队> 使用指定的列队 -f :后面加<文件> 从指定文件读入任务而不是从标准输入读入 -t :后面<时间参数> 以时间参数的形式提交要运行的任务 # 例子 ### 指定时间执行 `13:34` 分执行 date 命令,并将命令结果保存到 `/at.log` 文件中 **提示:**因为是定时任务,所以不能打印到控制台中,因为看不到结果,只能保存到文件中 [![](https://malaoshi.top/upload/0/0/1GW9WhquHzB.png)](https://malaoshi.top/upload/0/0/1GW9WhquHzB.png) 执行下面命令: ``` at 13:34 ``` 然后输入任务 ``` 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/ 原文出处:http://malaoshi.top/show_1GW9WjJ1j7H.html