19. Linux的at定时任务调度

19. Linux的at定时任务调度,第1张

与crond不同的是,at任务调度是一次性的,而crond是重复性的

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

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

1.3 at命令是一次性定时计划任务,执行完一个任务后就不再执行这个任务了

1.4 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令查看

    ps -ef | grep atd 可以检查atd是否在运行

at [选项] [时间]

按两次 ctrl+d 结束at命令的输入

4.1 当天的hh:mm(小时:分钟),假如这个时间已经过去,那么就第二天的这个时间执行。例如04:00

4.2 模糊的词语,例如midnight、noon、teatime(下午茶时间,16:00左右)

4.3 采用12小时计时制,例如8am

4.4 指定执行命令的具体日期,格式为month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必须跟着写在在指定时间的后面,例如:04:00 2021-3-1就是2021年3月1日凌晨4点整执行

4.5 相对计时法,指定格式为now + count time-units,now就是当前时间,time-units是时间单位,可以是minutes、hours、days、weeks。count是时间的数量,例如:now + 5 minutes

4.6 直接用today、tomorrow来指定完成命令的时间

5.1 2天后的下午5点,执行/bin/ls /home指令

at 5pm + 2 days 按回车键

然后写下那个时刻要执行命令 /bin/ls /home

最后按两次ctrl+d退出at指令

5.2 atq指令可以直接执行,查看系统中待执行的工作任务

5.3 明天17:00输出时间到指定文件内 /root/date100.log

at 17:00 tomorrow 按回车键

date >/root/date100.log

按两次ctrl+d退出at指令的输入

5.4 2分钟后

at now + 2 minutes

5.5 删除已经设置的任务,atrm 编号

可以用atq列出待执行的任务,列出后第一列就是job编号

周期性的执行任务计划的软件,Linux定时任务软件的常用软件crond

cron是定时任务的软件名

crond是服务进程名,真正实现定时任务服务

crontab命令是用来设置定时任务

01.使用定时软件,可以每天每小时按你的需求重复的执行一项工作

02.类似生活中使用的闹钟,可以自动完成 *** 作命令,定时备份系统数据信息。

01.定时任务服务环境准备

a. 启动crond服务  

关闭crond服务:systemctl stop crond.service

启动crond服务:systemctl start crond.service

查看crond服务状态:systemctl status crond.service

b.设置开机自启动

开机自启动crond服务:systemctl enable crond.service

开机不启动crond服务:systemctl disable crond.service

02.系统定时任务

a. 系统定时任务周期:

每小时  目录/etc/cron.hourly

每一天  目录/etc/cron.daily

每一周  目录/etc/cron.weekly

每个月  目录/etc/cron.monthly

b. /etc/crontab 系统定时任务的配置文件之一(有记录定时任务格式)

c. 系统定时任务+logrotate命令 完成对日志的切割/日志轮询

/var/log/cron

/var/log/messages

/var/log/secure

02.用户定时任务

用户定时任务查看      crontab -l  == cat /var/spool/cron/root

用户定时任务编辑      crontab -e  ==  vim /var/spool/cron/root

定时任务配置文件      /var/spool/cron/root (root文件表示root用户设置的定时任务,文件名是根据用户名设置的)

注:定时任务常见提示信息

a. no crontab for root   当前用户没有编辑定时任务

b. Do you want to retry the same edit   定时任务编辑错误是否继续

03.定时任务编写语法格式:

定时任务常用符号

*       每  

/n     每隔

-       连续区间

,        分隔

04.定时任务编写流程

a. 测试定时执行命令(定时任务执行的命令用绝对路径)

b. 编写定时任务信息(先编写注释信息,编写定时任务)

c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)

定时任务对%不识别,百分号需要转义\%

尽量使用脚本文件实现

a. 测试定时执行脚本(定时任务执行的脚本利用绝对路径/bin/sh)

b. 编写定时任务信息(先编写注释信息,编写定时任务 在任务信息后边加上>/dev/null 2>&1 避免产生很多没用的小文件占用磁盘inode)

c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)

定时任务编写要领

(1)为定时任务规则加必要的注释

(2)所有的定时任务尽量都以脚本的形式执行

(3)在执行的shell脚本前加上/bin/sh

(4)在定时任务中命令或脚本的结尾加上 >/dev/null 2>&1

(5)在指定用户下执行相关定时任务

(6)生产任务计划程序中不要随意打印输出信息,有输出的想法去掉

(7)定时任务执行的脚本哟啊存放到规范路径下

(8)配置定时任务要规范 *** 作过程,减少出错

(9)定时任务脚本中程序命令及路径尽量用全路径

(10)时间变了%号要用反斜线转义(只有定时任务里时命令时需要)

(11)若脚本中调用了系统环境变量,要重现定义

(12)出错或无法执行,就检查/var/log/cron日志


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9034176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存