Linux教程

Linux学习(五)定时任务调度

本文主要是介绍Linux学习(五)定时任务调度,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一,crond任务调度

任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1,系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2,个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。又比如执行某些自己编写的shell脚本。

1,crontab命令

-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
命令入门:
设置任务调度文件: /etc/crontab
设置个人任务调度。执行crontab -e命令。接着输入任务到调度文件
如:*/1 * * * * ls -l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls -l /etc/ >/tmp/to.txt命令
也就是说*/1 * * * *代表每小时的每分钟。
下面对这个参数进行细节说明:
1,占位符说明
在这里插入图片描述
2,特殊符号说明
在这里插入图片描述
3,个别例子
在这里插入图片描述
例如:
在这里插入图片描述
里面有一个命令 date >> /root/test/to2.txt
然后再查看to2.txt
在这里插入图片描述
可以发现过了4分钟执行了4次date命令

二,at定时任务

at定时任务就像我们写工作计划一样,可以规定未来的某个时刻干什么事情。只干一次。不像crontab一样是每隔多长时间干某件事情。
at的定时任务完成原理如下:
每at一个任务,后台的job队列就会添加一个任务。而at的守护进程atd每60秒查看一次job队列,如果有任务到了规定的运行时间,则执行这个任务。因此,想要保证at的任务执行,一定要保证atd进程运行,可以通过ps -ef l grep atd 命令检测atd是否在运行

1,at命令

at[选项][时间]
执行命令以后进入at程序,然后输入任务。Ctrl+D结束at命令的输入,注意要连续输入两次Ctrl+D

1.1 at命令选项

在这里插入图片描述

1.2 at指定时间的方法

1)接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
2)使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
3)采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如: 12pm
4)指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
5)使用相对计时法。指定格式为: now + count time-units ,now就是当前时间, time-units是时间单位,这里能够是minutes(分钟)、hours (小时)、days(天)、 weeks(星期)。count 是时间的数量,几天,几小时。例如: now + 5 minutes
6)直接使用today(今天)、tomorrow(明天〉来指定完成命令的时问。

1.3 举例

在这里插入图片描述

补充:
atq命令查看at还没有执行的命令,即查看job队列
atrm 3 将job队列种编号为3的任务删除。

这篇关于Linux学习(五)定时任务调度的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!