• 别人的Linux私房菜(16)计划任务


    计划任务的种类:

    at,执行一次就结束的命令    crontab,用户任务循环执行的任务的命令。系统任务编辑/etc/crontab来完成。

    atd让at生效。crond或cron让crontab生效。

    仅执行一次执行的计划任务at

     重新启动atd服务:systemctl restart atd

    设置该服务开机自启:systemctl enable atd

    查看目前atd的状态:systemctl status atd#是否开机自启,是否正在运行

    使用at命令产生的任务,以文本写入到/var/spool/at目录内,以便atd服务的执行。

    执行过程中,首先寻找/etc/at.allow中存在的用户名,存在的用户可以使用at。

    之后,如果没有/etc/at.allow则找寻/etc/at.deny。在deny中存在的账户不能使用at。

    如果两个文件都不存在,则只有root可以执行at

    创建at任务,发送root的bashrc给root:at now +5 minutes,之后输入 /bin/mail -s "Hi" root </root/.bashrc,ctrl+d

    -c加命令内容查看。如:at -c 2。-m不管有无输出信息都发送邮件判定执行情况。

    给定时间创建任务:at 23;00 2019-04-22,之后输入执行的内容。

    at命令在任务执行时,会进入at shell环境,使用不同的环境变量等原因,建议使用绝对路径执行命令。

    标准输出发送到执行者的mailbox中,若发送到终端则类似写入:echo 'HI" >> /dev/tty3

    查询目前的at任务:atq

    删除任务:atrm x;x为atq中显示的任务号码

    batch,CPU1分钟的平均任务负载(平均执行任务数量)小于0.8,才执行工作任务。利用at执行命令,不支持时间参数。

    uptime查看1分钟,5分钟,15分钟的平均任务负载。

    jobs查看正在执行的任务

    crontab命令执行时,优先先找/etc/cron.allow,然后是/etc/cron.deny。文件二选一,系统默认保留/etc/cron.deny文件。

    crontab命令建立的任务保存在/var/spool/cron/userName中(不宜直接修改,含语法)。

    cron每次执行的数据写入到/var/log/cron日志文件中。

    crontab是指在/usr/bin/crontab的程序

    -e编辑任务内容,-r删除所有任务,-l查看任务等

    使用crontab创建任务,发送邮件:crontab -e;之后输入:0 12 * * * mail -s “Hi” root < /root/.bashrc;wq保存退出

    时间格式为:分钟,小时,日,月,周。共五项。*表示任意,,表示分隔时间点,-表示一段时间内,/n表示每隔多久,n为某数字

    编辑crontab即可完成修改。全部删除-r

    cron服务每分钟读取var/spool/cron//etc/crontab的数据内容,进行执行,最小单位为分钟。

    显示系统计划crontab的内容:cat /etc/crontab。其中的MAILTO=root,表示执行过程中的错误信息或屏幕信息传递邮件的对象。root可能由于root的pop3收信协议限制有影响

    PATH为执行文件路径。

    cron[d]服务读取的位置:/etc/crontab/etc/cron.d/*/var/spool/cron/* 

    /etc/cron.d/*也和系统运行的配置有关。查看该路径下的某个文件:cat /etc/cron.d/0hourly,该文件每小时执行的run-parts脚本,run-parts脚本每小时选择5分钟随机时间执行/etc/cron.hourly目录内的所有执行文件(脚本)。

    而/etc/cron.daily  /etc/cron.weekly/   /etc/cron.monthly为anacron执行,而anacron的执行方式在/etc/cron.hourly/0anacron中。

    在进行计划任务设置是,错开时间,避免资源分配不均,取消不必要的输出选项,进行安全检查等。注意周与月日的可能冲突问题。

    anacron可唤醒停机期间的工作任务。分析现在时间和文件记录所记载的上次智能型时间差异,执行未执行的任务。

    anacron因放在/etc/cron.hourly/下,所以每小时主动执行一次。执行的为0anacron。查看该文件:cat /etc/cron.hourly/0anacron#前置0表示最先执行了。

    查看anacron的配置文件:cat /etc/anacrontab,其中显示了相差天数,延迟时间,工作名称定义,实际执行命令串。

    anacron找到/etc/anacrontab中的天数,找到/etc/spool/anacron/cron.xxx中对应的上一次时间,比较,然后延时,最后执行。

  • 相关阅读:
    动态规划之矩阵连乘
    常见的开放符号服务器
    QT中的宏定义
    QT Creator项目路径设置
    批处理-日常小功能用法记录
    Qt Creator快捷键记录
    利用Navicat premium实现将数据从Oracle导入到MySQL
    php BCmath 封装类
    PHP 反射类
    Html标签生成类
  • 原文地址:https://www.cnblogs.com/bai2018/p/10753762.html
Copyright © 2020-2023  润新知