• 计划任务管理


    一、计划任务概述

    1.计划任务类别

    一次性计划任务

    −在预先指定的日期/时间执行,只执行一次

    −系统服务atd、配置工具at

    周期性计划任务

    −按预先指定的时间点/间隔频率执行,反复执行多次

    −系统服务crond、配置工具crontab

    2.计划任务的授权

    默认情况下,任何用户都可以安排各自的任务

    但在必要时,管理员可以启用授权控制

    −at 任务:/etc/at.allow、/etc/at.deny

    −cron任务:/etc/cron.allow、/etc/cron.deny

    1. [root@hadoop ~]# ls /etc/{at,cron}*.{allow,deny}
    2. ls: cannot access /etc/at*.allow: No such file or directory
    3. ls: cannot access /etc/cron*.allow: No such file or directory
    4. /etc/at.deny /etc/cron.deny

    1. 如果allow文件存在,则仅允许指定的用户

    2. 否则检查deny文件,除指定用户外其余都允许

    3. 如果两个文件都不存在,则只允许root使用 

    二、at一次性计划任务

    1.at任务机制

    atd服务相关

    −需要启用atd服务,一次性计划任务才会生效

    −任务存放位置:/var/spool/at/用户名

    配置at任务

    −用法:at [HH:MM] [yyyy-mm-dd]

    2.添加at一次性任务

    1. [root@hadoop ~]# service atd restart
    2. Stopping atd: [ OK ]
    3. Starting atd: [ OK ]
    4. [root@hadoop ~]# at 19:37 2202-08-15 //按Ctrl+d键提交计划

     任务需求

    −计划于当前晚上21:30 自动重启系统

    [root@hadoop ~]# at 21:30    //定于21:30重启系统
    

    3.查询at一次性任务

    任务需求

    −查询尚未执行的at 一次性计划任务

    1. [root@hadoop ~]# atq //列出at任务队列
    2. [root@hadoop ~]# at -c 2 //查询任务2详情(末尾)

    4.删除at一次性任务

    任务需求

    −删除指定的at 一次性计划任务

    1. [root@hadoop ~]# atrm 2 //删除指定的计划
    2. [root@hadoop ~]# atq //再次查询,任务已消失

    三、crontab周期性任务

    1.crontab任务机制

    crond服务相关

    −需要启用crond 服务,周期性计划任务才会生效

    −任务存放位置:/var/spool/cron/用户名

    默认的计划任务

    −全局配置:/etc/crontab

    −系统计划:/etc/cron.*

    1. [root@hadoop ~]# ls -d /etc/cron*
    2. /etc/cron.d /etc/cron.daily /etc/cron.deny

    2.crontab配置记录格式

    参考全局配置/etc/crontab

    −分钟小时日期月份星期可执行语句

    3.任务时间点范例

    四、周期性任务实例

    1.管理crontab任务记录

    编辑周期性计划任务

    −crontab-e [-u 用户名]

    查看周期性计划任务

    −crontab-l [-u 用户名]

    删除周期性计划任务

    −crontab-r [-u 用户名]

    2.crontab配置实例

    任务需求

    −每天早上07:30 开启sshd服务

    −每天晚上23:30 关闭sshd服务

    五、anacron任务补做机制

    1.anacron工作机制

    适合不需要24小时持续运行的主机

    −任务周期:每小时检查一次,最近x天以内的任务

    −由crond服务调度检查,执行被错过的任务操作

    2.anacron配置解析

    任务记录文件

    −位于/var/spool/anacron/任务名称,其中记录了此任务最近一次被执行的日期,以判断是否过期−比如:对于每周的任务,如果记录的日期与当前的日期相差超过7天,则需要补做 

    1. [root@hadoop ~]# cat /var/spool/anacron/cron.weekly
    2. 20220426

    六、anacron配置实例

    1.案例需求及实现

    任务需求

    −每天执行:备份/home 目录为/opt/home.tgz

    −如果错过了,则延迟3分钟后补做

    2.验证案例效果

    自动测试:由crond服务每小时检查一次

    手动测试:anacron-n

    1. [root@hadoop ~]# anacron -n //手动检查anacron任务
    2. [root@hadoop ~]# cat /var/spool/anacron/anatest //确认执行日期
    3. [root@hadoop ~]# ls -lh /opt/abc.txt //确认任务结果

  • 相关阅读:
    Maven&MyBatis
    PHP代码示例
    删除 KubeSphere 中一直卡在 Terminating 的 Namespace
    PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)
    SqlServer如何将mdf、ldf文件导入数据库—两种解决方法
    java计算机毕业设计敬老福利院管理源码+mysql数据库+系统+lw文档+部署
    bean的生命周期
    VMware虚拟机安装macOS报错问题解决:客户机操作系统已禁用CPU,请关闭或重置虚拟机
    Linux基础知识与实操-篇一
    5 分钟教你搭建「视频动作分类」系统
  • 原文地址:https://blog.csdn.net/m0_55834564/article/details/126353308