• Linux基础——定时任务


    定时任务是什么?

    定时任务指在指定时间进行的工作流程

    at

    命令 at 用于处理仅执行一次的任务(要有atd服务支持,指令记录到/var/spool/at/),-m用邮件通知工作已完成,-l (atq)列出当前系统上面该用户的at任务,-d (atrm)取消任务,-c [job]列出该项任务的实际指令内容

    使用如下命令重启atd并设置为开机自启
    在这里插入图片描述

    • 如果存在 /etc/at.allow,则只有定义在其中的用户才可以使用at
    • 若不存在 /etc/at.allow,则查找 /etc/at.deny,未定义在其中的用户才可以使用at
    • 若都不存在,则只有root才能使用at

    如下规定在8分钟后执行exit命令(Ctrl+d推出at命令行)
    在这里插入图片描述

    • 执行at命令最好使用绝对路径,否则会以当前目录为准
    • 所有终端输出都会以邮件形式发送到执行者mailbox

    batch

    命令 batch 使用 at 进行指令的下达,不过只有在CPU工作负载小于0.8的时候才会运行任务

    crontab

    命令 crontab 用于处理循环的任务(要有crond服务支持,指令记录到/var/spool/cron/user/,执行的工作记录到/var/log/cron),-u 只有root才能进行的任务,-e 编辑任务,-l 查阅任务,-r 移除所有任务

    • 如果存在 /etc/cron.allow,则只有定义在其中的用户才可以使用crontab
    • 若不存在 /etc/cron.allow,则查找 /etc/cron.deny,未定义在其中的用户才可以使用crontab

    输入 crontab -e 进入vi编辑界面,格式为 分 时 日 月 周 指令

    符号意义
    *表示任意时间
    ,表示多个时间,0 8,12 * * * command表示8点和12点执行命令
    -表示时间范围,0 8-12 * * * command表示8-12点之间的每小时0分执行命令
    /表示时间间隔,*/5 * * * * command表示每隔5分钟一次

    如下设置每天12点将1.txt的内容以邮件的形式发送给用户song

    在这里插入图片描述

    /etc/crontab

    crontab命令用于编辑用户的任务,而系统的任务定义在 /etc/crontab,cron服务每分钟都会读取系统任务(/etc/crontab)和 用户任务(/var/spool/cron/user/)
    里插入图片描述

    /etc/cron.d

    /etc/crontab 用于放置系统任务,第三方应用的任务则放在 /etc/cron.d 下

    anacron

    corntab 的任务超过时间(如电脑关机)就会失效,而命令 anacron 可唤醒未被系统运行的crontab任务

    -s 开始一连续的执行各项工作,会依据timestamps判断是否进行,-u 强制执行,-n 立刻执行未进行的任务,-u 更新timestamps但不进行任务

    /etc/anacrontab

    文件 /etc/anacrontab 记录任务,格式为 天数 延迟时间(min) 工作名 实际指令,由 /etc/cron.hourly/0anacron每小时调用一次,执行anacron并读取/etc/anacrontab

    在这里插入图片描述

    /var/spool/anacron/*

    文件 /var/spool/anacron 记录时间戳

    在这里插入图片描述

    执行步骤

    • 由 /etc/anacrontab 分析 cron.daily 的任务天数为1天
    • 由 /var/spool/anacron/cron.daily 取出最近一次执行anacron的时间戳
    • 将上面的时间戳与当前时间比较,若大于1天,则准备(在延迟时间后)执行任务
  • 相关阅读:
    用go封装一下封禁功能
    RabbitMQ队列持久化的重要性与意义
    SSTI模板注入(flask) 学习总结
    AndroidX使用过程中的疑难杂症
    为什么很多公司都开始使用Go语言了?
    【Linux】进程间通信——管道
    msyql锁分类
    #IIC 通信协议
    C++ 动态内存管理,new与delete
    快速解决“msvcp110.dll丢失”问题,msvcp110.dll丢失修复分享
  • 原文地址:https://blog.csdn.net/qq_35258036/article/details/125642977