Linux定时任务调度

[删除(380066935@qq.com或微信通知)]

更好的阅读体验请查看原文:https://www.cnblogs.com/yjh1024/p/16467303.html

任务调度

概述

任务调度是指系统在某个时间执行特定的命令或程序,任务调度主要有两种,第一种是系统工作,需要周而复始的执行,比如病毒扫描。第二种是个人用户工作,用户需要在某个特定的事件执行某些程序,比如备份数据库。

Linux 中使用 corntabat 进行定时任务的设置

crond定时任务

基本语法

//编辑crontab定时任务
crontab -e
//查看当前crontab定时任务
crontab -l
//删除当前用户所有的crontab任务
crontab -r

定时执行指令任务

//首先执行
crontab -e //进入任务编辑
//然后输入要执行的任务
*/1 * * * * /etc/ > /tmp/list.txt

五个占位符的说明

项目 含义 范围
第一个 分钟 0~59
第二个 时钟 0~23
第三个 一个月的第几天 1~31
第四个 一年中的低级月 1~12
第五个 星期几 0~7

关于特殊符号说明

符号 含义
* 范围内的任何值
, 不连续时间
- 连续时间
*/n 没间隔n个单位时间

定时执行脚本或程序

  1. 首先使用vim编辑器写一个脚本文件,如下
vim /home/my.sh
//写入如下简单示例指令
*/1 * * * * date >> /tmp/mydate.txt

示例给出的是一个简单的指令,我们也可以写更复杂的shell脚本或Java程序
2. 然后需要给当前用户增加my.sh的执行权限

chmod u+x /home/my.sh
  1. 最后向crontab中写入执行shell的指令
crontab -e
*/1 * * * * /home/my.sh

at定时任务

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来允许,默认情况下atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果与当前时间匹配就会运行次作业。

注意:at命令在使用时,一定要保证atd进程的启动,可以使用指令 ps-ef | grep atd 来检测atd是否在运行。

at命令格式

at [选项] [时间]
输入两次 Ctrl+D 来结束at任务的输入

at命令选项

选项 含义
-I 等同于atq,显示当前at任务队列
-d 等同于atrm,后跟一个数组表示删除队列中的第几个at任务
-q <队列> 使用指定队列
-f <文件> 从指定文件读入任务

at指定时间

  • 使用hh:mm指定
  • 采用12小时制+AM/PM 指定
  • 使用hh:mm 年-月-日指定
  • 相对计时,比如now + 5 hours(minutes/days/weeks)

学习总结来源于韩顺平老师一周学会Linux