5-linux中的定时任务调度

crond 任务调度

crontab 进行 定时任务调度

概述

任务调度:是指系统在某个时间执行的特定的命令或程序

任务调度分类:

  • 系统工作:有些重要的工作必须周而复始地执行
  • 个别用户工作:希望定时执行某些程序

基本语法

crontab [选项]

常用选项

  • -e : 编辑crontab定时任务
  • -l:查询crontab任务,列出任务列表
  • -r :删除当前用户所有的crontab任务

快速入门

image.png

特殊符号的说明

特殊符号 含义
* 表示任何时间。比如,当第一占位符为*时,就表示一小时中每分钟的意思
, 表示不连续的时间。比如命令:0,8,12,16 * * * ,表示在每天的8点、12点、16点 都执行一次命令
- 表示连续的时间。 比如命令:0 5 * * 1-6 表示在每周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如命令:*/10 * * * *, 代表每隔10分钟就执行一遍命令

应用实例

  • 每隔一分钟就将当前的日期信息,追加到/tmp/mydate文件中
    • */1 * * * * date >> /tmp/mydate
  • 每隔一分钟,将当前日期和日历都追加到/home/mycal 文件中
    • 步骤
    • vim /home/my.sh 写入内容,date >> /home/mycal 和 cal >> /home/mycal
    • 给my.sh增加执行权限,chmod u+x /home/my.sh
    • crontab -e 增加命令:*/1 * * * * /home/my.sh

crond 相关指令

  • crontab -r : 终止任务调度
  • crontab -l : 列出当前有哪些任务调度
  • service crond restart : 重启任务调度

at 定时任务

基本介绍

  • at 命令是一次性定时计划任务,at的守护进程会以后台模式运行,检查作业队列来运行。
  • 默认情况下,atd守护进程每60s检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间相匹配,则运行此作业。
  • at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
  • 在使用at命令时,一定要保证atd进程的启动,可以通过指令 ps -ef | grep atd 来进行检查。

at 命令格式

at [选项] [时间]

当输入完成时,输入ctrl + D 表示输入命令的结束 (输入两次)

当输入at命令时,想要进行删除的话,需要按ctrl+del

at 命令选项

image.png

at 时间的定义

  • 接受在当天的hh:mm式的时间指定。如果时间已经过去,将会放到第二天执行。
  • 使用比较模糊的词语来指定时间 比如:midnight、noon等
  • 采用12小时制,在时间后面加上am或pm来说明是上午还是下午。例如:6pm
  • 指定命令执行的具体日期
    • mm/dd/yy 或 dd.mm.yy
    • 指定的日期必须跟在指定时间的后面:4:00 2021-03-1
  • 使用相对计时法
    • 指定格式:now + 时间大小 时间单位
    • 时间单位:minutes、hours、days、weeks
    • 比如:now + 5 minutes 含义:5分钟后执行指令
  • 直接使用today、tomorrow 来指定完成的时间

其他指令

  • atq : 显示系统中没用执行的工作任务
  • atrm 编号 : 删除已经设置的任务

猜你喜欢

转载自blog.csdn.net/qq_45575167/article/details/131947795
今日推荐