zoukankan      html  css  js  c++  java
  • 定时任务 && 例行任务

    仅执行一次的工作调度—at/batch

    服务

             atd

    服务启动

             /etc/init.d/atd start

    at运行方式

             /etc/at.allow

                       首先寻找at.allow,在其中的用户才可以使用at,其他人不可以使用(即使不在at.deny中)

             /etc/at.deny

                       没有at.allow时,不在at.deny中的用户可以使用at

    at运行

             at [-mldv] TIME

             at -c 工作号码

                       m      当at工作完成后,即使没有输出信息,也给用户发送email

                       l        小写l,相当于atq,列出目前系统上面的所有at调度

                       d       相当于atrm,取消一个在at调度中的工作

                       v       使用较明显的时间格式输出at调度任务列表

                       c       列出该项工作的实际命令内容

                       TIME         时间格式,定义at工作执行时间

                                HH:MM   今日的HH:MM,若已超过,则明日

                                         04:00

                                HH:MM YYYY-MM-DD

                                         04:00 2009-03-17

                                HH:MM[am|pm] [Month] [Date]

                                         04pm March 17

                                HH:MM[am|pm] + number [minutes|hours|days|weeks]

                                         04pm + 3 days

             [ctrl]+d结束输入

             例:

                       at now + 5 minutes

                                /bin/mail root -s "test at job" < /root/.bashrc

                                [ctrl]+d

                       at 23:00 2009-03-17

                                /bin/sync

                                /bin/sync

                                /bin/shutdown -h now

                                [ctrl]+d

    at特点

             1. at的执行与终端机环境无关,所有的stdout和stderr会传送到执行者的mailbox中,要输出信息可以使用"echo "Hello" > /dev/tty1 "

             2. 系统会将at工作独立出bash环境,直接交给系统的atd程序接管。

    batch

             执行方式与写法同at,会在系统负载小于0.8时候执行

    循环执行的例行性工作调度-crontab

    服务

             crond

    启动

             系统默认启动

    服务运行方式

             /etc/cron.allow

                       不在这个文件中的用户不可使用crontab

             /etc/cron.deny

                       在这个文件当中的用户不可使用crontab

    日志记录

             /var/log/cron

    crontab使用

             crontab [-u username] [-l|-e|-r]

                       u       只有root才可使用,帮助其他用户建立crontab任务

                       l        查阅crontab

                       e       编辑crontab

                       r        删除所有的crontab,只删除一项,使用-e编辑即可

    crontab编辑

       

      

    /etc/crontab

       

    两种任务执行方式:

             让系统每2分钟去执行/etc/cron.min目录下的所有可执行文件

                       */2 * * * * root run-parts /etc/cron.min

      每5分钟执行程序

                       */5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg

    唤醒停机期间的任务-anacron

    用途:

      以一天、七天、一个月为期,或者在开机后立刻检测在停机期间应该进行但是没有进行的/etc/anacrontab中定义的任务,并将该任务执行一遍,然后anacron自行停止,可与crontab结合,达到每天执行

    使用

             anacron [-sfn] [job] ..

             anacron -u [job]

                       s       开始连续执行各项工作job,会依据时间记录文件的数据判断是否进行

                       f        强制进行,而不去判断时间记录文件的时间戳

                       n       立刻进行未进行的任务,而不延迟等待时间

                       u       仅更新时间记录文件的时间戳,不进行任何工作

                       job    由/etc/anacrontab定义的各项工作名称,默认cron.daily、cron.weekly、cron.monthly

    服务运行方式

             /etc/anacrontab

                      

                       定义每日任务、每周任务、每月任务的执行延迟时间

    原理

             从/etc/anacrontab分析到crondaily这项工作名称的天数为1天

             从/var/spool/anacron/cron.daily取出最近一次执行anacron的时间戳

             将第二步得到的时间与目前的时间比较,差异为第一步的天数1以上(包含1),就准备执行命令

             读取延迟时间

             延迟时间过后,执行后续命令

    使用

             根据需求添加日脚本、周脚本、月脚本

             在/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly中加入同步时间戳的脚本(如果不存在)

                       /etc/cron.daily/0anacron

                       if [ ! -e /var/run/anacron.pid];then

                                anacron -u cron.daily

                       fi

             /etc/anacrontab定义执行延迟时间

             设置anacron开机启动并且根据需要在crontab中调度anacron执行时间

  • 相关阅读:
    一个弹框表单复用create,edit表单操作
    数组去重,防抖节流,渲染几万条数据不卡页面,32个手撕JS,彻底摆脱初级前端
    解决vue表单回显数据无法修改的问题
    正则
    将UTC时间转换为当地的时间
    Vue页面上实时显示当前时间,每秒更新
    互联网协议
    记录:批量重命名文件夹下的文件
    IdentityServer4 无法登录,一直跳转登录界面
    同解与等价
  • 原文地址:https://www.cnblogs.com/yc913344706/p/7096683.html
Copyright © 2011-2022 走看看