crond任务调度

crontab 进行定时任务的设置。

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

基本语法:crontab [选项]
常用选项:
-e:编辑crontab定的任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
service crond restart [重启任务调度]

快速入门

设置任务调度文件: /etc/crontab
设置个人任务调度: 执行crontab -e命令。
接着输入任务到调度文件: 如: */1 * * * * ls -l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行Is -l /etc/ > /tmp/to.txt命令。
参数细节说明:
5个占位符的说明:

特殊符号说明:
特殊时间执行案例:

例:
1)每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中 , */1 * * * * date >> /tmp/mydate
2)每隔1分钟,将当前日期和日历都追加到/home/mycal 文件中 ,
(1) vim /home/my.sh写入内容 date >> /home/mycal 和 cal >> /home/mycal
(2)给my.sh增加执行权限 , chmod u+x /home/my.sh
(3)crontab -e增加*/1 * * * * /home/my.sh
3)每天凌晨2:00将mysql数据库testdb ,备份到文件中 ,
(1) crontab -e
(2)0 2 * * * mysqldump -u root -p root testdb > /home/db.bak

at定时任务

基本介绍:

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。

  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。

  4. 在使用at命令的时候,一定要保证 atd进程的启动,可以使用相关指令来查看
    ps -ef | grep atd //可以检测 atd是否在运行

基本语法: at [选项] [时间]
Ctrl+D 结束at命令的输入,连续输两次

at命令选项:

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 2023-01-5

  5. 使用相对计时法。指定格式为: now + count time-units ,now就是当前时间, time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。例如: now + 5 minutes

  6. 直接使用today (今天)、tomorrow(明天) 来指定完成命令的时间。
    删除已经设置的任务:例:atrm 4 //表示将编号为4的job删除。


本文章使用limfx的vscode插件快速发布