• 一.定时任务详解https://i.cnblogs.com/EditPosts.aspx


    定时任务的详解

    h每小时运行  d每天运行 w每周运行 m每个月运行  中毒时查看系统定时任务是否有病毒的脚本。

    crontab  -l  查看用户的定时任务

    crontab -e  进入编辑界面增加定时任务

    /var/spool/cron/root         root用户定时任务的文件

    定时任务的使用

    一.

    二.

    查看定时任务日志----一定要会看日志

    定时任务时间

    30  08  *  *  *    命令或者脚本              每天的八点半执行

    30  08  *  *  5                                      每周五的八点半执行

    */5  *  *  *  *                                         每五分钟执行 /n 表示每什么时候

    创建每5分钟执行时间同步

    crontab -e

    */5 * * * *  /usr/sbin/ntpdate  ntp1.aliyun.com 命令需要绝对路径

    :wq 保存退出  crontab -l 查看   

    通过1.日志检查  tail  -f  /var/log/cron

           2.看结果

    每天7点到11点每个一个小时运行一次命令  - 从哪里到哪里

            *  07-11   *    *    *          表示七点到十一点每分钟运行一次

            00  07-11 *  *  *             表示七点到十一点每个小时运行一次 00表示整点

            00  07,09  *  *  *            表示七点九点 运行一次 , 分割

            00  23,00-07 *  *  *       每天的23点及0点到7点每个小时运行一次

    列:每分钟把自己的名字追加到、/oldboy/oldboy.txt中

            */1  *  *  *  *    echo zhouyunchuan>>/odlboy/oldboy.txt

            crontab -l 查看   tail -f /var/log/cron 检查结果

    定时任务流程

    九字箴言

     

    在 脚本的前面加上PATH变量

    脚本创建定时任务

        1.书写命令  2.写入脚本 sh运行脚本

        3.把脚本写入定时任务

        4.检查 日志  tail -f  /var/log/cron 和命令对不对

        列  sh /server/scripts/date.sh >>/oldboy/oldboy.txt

          * * * * *  /bin/sh /server/scripts/date.sh >>/oldboy/oldboy.txt

        创建定时任务 尽量把命令放入脚本中

        创建存放脚本的目录一般 mkdir  -p /server/scripts/  目录下

    故障案列

        定时任务中命令或脚本结果(正确和错误)没有追加到文件或定向到黑洞

                                     文件>>/oldboy/oldboy.txt

                                     黑洞>/dev/null  2>&1 放进去会消失

        需要知道脚本的结果和信息就追加到文件

     

      如过不这么做的后果案列

       企业案例 如果定时任务规则结尾不定向到黑洞或追加到文件

       很容易导致硬盘inode占满 导致系统故障

       1.邮件软件没有开启--大量小文件堆积在/var/spool/postfix/maildrop/ --inode满了

       2.邮件开启--定时任务会不断的给root用户发邮件

        关闭1.查看/etc/init.d/postfix status

                2.关闭/etc/init.d/postfix stop

                3.关闭自启动chkconfig postfix off 查看chkconfig|grep  postfix

    列显示当前系统时间年月日 周和当前系统的ip地址追加到/tmp/ip.log

      1.写命令

         date +%F_%w

         ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4}'

       2. 执行正确写入脚本ip.sh

         vim /server/scripts/ip.sh

          运行脚本追加到>>/tmp/ip.log  2>&1

         /bin/sh  /server/scripts/ip.sh >>/tmp/ip.log 2>&1

       3.写入定时任务里

         crontab  -e

         * * * *  *   /bin/sh  /server/scripts/ip.sh  >>/tmp/ip.log 2>&1

         此时定时任务结果会出错 原因是脚本的第二行的

         命令ifconfig 属于/sbin/下 定时任务中PATH只认识/bin 和/usr/bin使用绝对路径解决    

         或脚本开头添加export  PATH=命令的全部路径

    如何处理因为没有定向到空而产生了大量小文件的方法

        创建大量小文件环境  touch  {1..500000}.txt 

                                 报错-bash: /bin/touch: Argument list too long

                                           参数太长

                               解决echo {1..500000}.txt|xargs touch

                               同样当前目录 m  -fr  *会报同样的错

                               方法ls |xargs m -fr 

                               方法删除文件所在目录(记好权限和所有者)

    总结:1.命令测试

                   注意事项 使用命令绝对路径

               2.编写脚本

                   定时任务推荐使用脚本

                               命令全路径复制到脚本

                               创建指定的脚本目录/server/scripts

                               打包任务是切换到上级目录

                               

                       3.测试脚本

                              查看和执行

                       4.编辑任务crontab -e

                              书写规范 加注释说明

                               定向到>dev/null  2>&1

                               或追加到文件     2>&1

                               复制正确的脚本路径

                               使用绝对路径或添加PATH变量

                        5.调试

                               

       

         

  • 相关阅读:
    设计模式之-工厂模式、构造函数模式
    发布订阅小示例
    使用vue,react,angular等框架和不使用框架使用jquery的优缺点
    react优化--pureComponent
    Vue、 React比较
    ORACLE触发器和new、old特殊变量
    mysql的存储过程与自定义函数
    MySQL日期
    php(Personal Home Page)简介,安装和配置(apache服务器使用和配置1)
    话谈html语义化
  • 原文地址:https://www.cnblogs.com/cqzhou/p/8570650.html
Copyright © 2020-2023  润新知