• 操作系统定时任务


    一.定时任务作用说明

      1.类似生活中使用的闹钟

      2.可以自动完成操作命令

      3.定时备份系统数据信息

    二.定时任务软件种类

      1.定时任务软件  cronie  ******

          默认系统自带定时服务 crond(crontab---定时任务命令)

      2.定时任务软件  atd

          定时任务只执行一次,一次性定时服务

      3.定时任务软件  anacron

          非 7*24 小时运行的服务器

      4.回顾知识点:如何检查软件是否安装

        rpm  -qa  软件名      查看系统中是否有指定的软件大礼包

        rpm  -ql   软件名      查看软件大礼包中都有那些数据信息

        rpm  -qf  'which  命令'    查看一个命令文件属于哪个软件大礼包

          

         rpm  -ivh  软件包.rpm    利用rpm安装软件大礼包

          -i  install(安装)

          -v  显示安装过程

          -h  human(易读方式)

        yum  install  -y  软件大礼包

        yum  provides  命令  查询命令属于哪个软件大礼包

          

       5.补充说明:如何让linux和windows主机之间传输数据  命令rz和sz

        

          查看命令属于哪个软件大礼包  rzsz属于lrzsz这个软件大礼包

        

         系统中没有rz这个命令,查看lrzsz软件大礼包是否安装,经查未安装,利用yum命令进行安装

         rz  -y     从windows上下载数据linux

          

        sz  -y     从linux上上传数据到windows 

          

    三.定时任务实现方式

      1.系统定时任务--系统特殊目录

        01.系统定时任务周期:每小时(系统自动运行里面的内容)

          控制定时任务目录:  /etc/cron.hourly

        02.系统定时任务周期:每一天(系统自动运行里面的内容)

          控制定时任务目录:  /etc/cron.daily

        03.系统定时任务周期:每一周(系统自动运行里面的内容)

          控制定时任务目录:  /etc/cron.weekly

        04.系统定时任务周期:每个月(系统自动运行里面的内容)

          控制定时任务目录:  /etc/cron.monthly

        05./etc/cron.deny

        06./etc/crontab

          系统定时任务的配置文件之一

        07.系统定时任务+logrotade命令,完成对日志的日志切割/日志轮询

          /var/log/cron  /var/log/messanges  /var/log/secure

      2.用户定时任务

        01.用户定时任务查看  crontab -l(list)

          说明:列表查看定时任务信息

        02.用户定时任务编辑  crontab -e(edit)

          说明:编辑配置定时任务信息

          crontab -e  =  vi   /var/spool/cron        -----  定时任务配置文件保存目录

                   /var/spool/cron/root    ----- root用户设置的定时任务配置文件 

                   /var/spool/cron/oldboy  ----- oldboy用户设置的定时任务配置文件

      3.常见信息提示

        01.no  crontab  for  root  相应用户没有编辑定时任务

          

         02.Do  you  want to  retry  the  same  edit  定时任务编辑错误是否继续

          

    四.定时任务环境准备

      01.确定定时任务服务是否正在运行(系统当前可以使用定时任务)

        ps -ef|grep crond

        

        systemctl status crond

        

      02.确认定时任务服务是否开机启动(系统重启后也可以继续使用)

        systemctl status crond

        

    五.定时任务服务应用方法

      01 配置定时任务服务(crontab -e)

        crontab -e = vi /var/spool/cron/root

                  vi /var/spool/cron/oldboy

        当系统中没有编写定时任务文件时,上述所列文件不会存在

        

      02 查看定时任务信息(crontab -l)

        crontab -l = cat /var/spool/cron/root

      03 定时任务命令作用

        1.定时任务命令有语法检查功能,配置文件格式不对会报错

        2.定时任务命令使用时简单方便

          crontab -e

          

           vi /var/spool/cron/root  编写定时任务时不会对格式进行检查

      04 定时任务相关文件

        1 /var/spool/cron  定时任务服务配置文件所在目录

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

          /var/spool/cron/oldboy   oldboy用户定时任务配置文件

        2 /var/log/cron   定时任务服务运行记录日志文件

          01 日志查看命令  head/tail grep/egrep tail  -f/F less more

          02 日志查看方法

            日志追踪:  tail  -f

            

        3 /etc/cron.deny   定时任务服务禁止用户运行名单

      05 定时任务编写格式

        1.口诀:什么时间做什么,然后再想下一次什么时候执行 什么时间,做什么事情

          01 cat /etc/crontab

            

             定时任务=====>什么时间做什么(重复)

          02 定时任务书写例子

            30 08 * * * go  to  school      每天早上八点半,去学校

            00 24 * * * go  to  bad        每天晚上12点,去床上

            00 23 29 2 6 make  baby      注意:星期几和日期不要同时加上  2月29日 星期六 要使两个条件同时满足时间不定     

        2 定时任务中常用符号

         01 * 每      *  *  *  *  *  命令    ---- 表示每分钟

         02 /n 每隔n    */5  */5  *  *  *  命令   ---- 表示每隔5分钟,每隔5小时

         03 n-m 从n到m   0-59  07-11  *  *  *  CMD  ---- 每天早上7点到11点,每分钟运行CMD命令

         04 n,m n和m    00  17,19,20  *  *  *  CMD  ---- 每天晚上17点和19点及20点整 运行CMD命令

          测验01:每天14:30 ,起来学习
                    30 14 * * *
                测验02:每隔三天,夜里两点执行数据备份
                    00 02 */3 * *
                测验03:00/10  01,03  *   *    * (没这么写的)???? 书写逻辑错误
                    每天凌晨一点和三点 每隔10分钟0点整 --> 01:00  03:00
                测验04:*/10  01-03  *   *    *
                    每天凌晨1点到3点每隔十分钟执行 --> 1:00 1:10  .... 3:00
                测验05:*        01,03  *   *    *  ??? 书写逻辑错误
                    每天凌晨1点和3点
                测验06:*      01-03  *   *    *
                    每天凌晨1点到3点 每分钟执行
                测验07:00       02   28  */2  6  ??? 书写逻辑错误
                    每隔两月的28号凌晨2点

         总结:

           01.在写时间信息的时候,如果想表示每隔多久执行什么任务 /前面尽量用*表示,不要写具体数值

           02.时间信息由左到右依次书写,尽量不要跳步

           03.当编写定时任务时,日期信息不要和星期信息同时出现

         3 定时任务的编写流程

          01 定时任务执行命令规范

            1.测试定时执行命令

              定时任务执行的命令需要采用绝对路径

                

                 

                 上述情形,useradd正常执行没问题,放到定时任务中执行则无法执行

                情况说明:

                编写一个脚本文件,此文件内容是将路径环境变量的内容输出到一个特定文件

                

                直接用命令执行脚本,命令调用的环境变量信息是系统中路径环境变量

                

                 此时用定时任务执行上述脚本,再对输出的路径变量进行查看,发现定时任务只会识别/usr/bin:/bin 两个路径

                

                而uaeradd的执行路径是/usr/sbin/useradd  显然定时任务执行useradd是找不到路径信息,自然无法执行成功

                 

                 解决办法加绝对路径信息

                

                 在执行过程中明明执行命令以添加绝对路径但偏偏执行不成功,查看邮件信息,显示useradd命令打不开/etc/passwd

                 

                退出定时任务直接执行也一样,看来是/etc/passwd有问题,经查询发现是前期给予了文件锁止能力,所以命令打不开文件

                当我们取消文件的锁止功能后,定时任务命令执行成功

                 

            2.编写定时任务信息

              定时任务编写时,需要按照语法规范

                编写注释信息:以便后期维护知晓次命令是何意思

                编写定时任务:*  *  *  *  *  命令 先写出格式然后再根据需求进行编写

                

            3.检查定时任务效果

              查看定时任务日志

              

               查看定时任务效果

                检查命令执行结果

                

            4.排查定时任务问题

              查看定时任务日志

              查看定时任务效果

          02 定时任务执行脚本规范

            1.测试定时执行脚本

              

               

               脚本执行无问题.正常执行

            2.编写定时任务信息

              

               sh在定时任务命令执行路径变量中

              

            3.检查定时任务效果

              查看定时任务日志

              

              查看定时任务效果

              

            4.排查定时任务问题

              查看定时任务日志

              查看定时任务效果

      06 定时任务编写案列

        1 定时编写文件信息

          每分钟将自己的名字追加到/oldgirl/oldgirl.txt中

           1.测试定时执行命令 echo  "wwl" >>/oldgirl/oldgirl.txt

            

            2.编写定时执行任务信息 crontab -e

            # edit  name  input  file

            *  *  *  *  *  echo  "wwl" >>/oldgirl/oldgirl.txt

            

             

            3.检查定时任务效果

            01 查看定时任务配置文件

              crontab  -l =  cat /var/spool/cron/root

             

            02 查看定时任务日志信息

              tail  -f  /var/log/cron         tail   -f  /oldgirl/oldgirl.txt(追踪文件内容)

              

               

        3.定时重启系统服务

          每天23到第二天7点每隔1小时重启nginx服务

            1.测试定时执行命令 

             

        

    六.定时任务重点知识总结

      定时任务的9个劝告:

        1.定时任务规则之前加注释  表示定时任务在干什么

        2.使用脚本替代命令执行定时任务

          超过两条命令,就用脚本

          脚本相当于命令的合集

            编写脚本文件

              

             编写定时任务

              

         3.定时任务中的命令记得写成绝对路径,最好文件信息也写成绝对路径

        4.编写定时任务时,可以将输出到屏幕上的信息保存到黑洞中,避免占用磁盘空间

          说明:定时任务中执行命令.如果产生输出到屏幕上的信息,都会以邮件的方式告知用户

            

             此时上述文件会不断变大占用磁盘block空间

            systemctl stop postfix  关闭邮件服务

            

            

             当关闭邮件服务时,系统将会不断产生一些小文件,会占用磁盘inode空间

            systemctl start postfix  开启邮件服务

             当上述两种方式自相矛盾是唯一的解决办法就是,定时任务执行过程中输出的信息重定向到/dev/null黑洞文件中.就不会占用空间

            

          5.编写任务时,尽量不要产生屏幕输出信息

          命令和文件都写绝对路径,以防止错误信息输出,对于一些显示过程的命令参数,最好取消

          比如tar  -zcvf    -v是显示压缩过程,如果写在命令中记得取消-v参数

          最好的方式是无论错误还是正确的屏幕输出信息都丢到黑洞中   /dev/null

         6.定时任务中调用的命令路径环境变量是  /usr/bin:/bin

          对于不是在上述两个路径中的命令记得要写绝对路径,所以在编写定时任务之前,对于命令来说最好先确定命令的路径,以防万一都写成绝对路径

          上述遇到的问题中,注意某些文件的权限也会阻止命令的执行

          比如/etc/passwd由于加了锁止权限   chattr  +i    /etc/passwd    导致命令  useradd无法正常执行

          解决办法是去掉/etc/passwd的锁止权限.

            

  • 相关阅读:
    第二节:简单工厂模式(静态工厂模式)
    第一节:不使用设计模式的传统方式
    第三章:设计模式概述
    第二节:类与类之间的关系
    高斯混合模型(GMM)
    随机森林
    LDA主题模型
    Adaboost算法
    线性代数
    k-means聚类
  • 原文地址:https://www.cnblogs.com/zp751060301/p/12960771.html
Copyright © 2020-2023  润新知