linux系统的定时任务(包括指令执行和脚本执行)

1.   at指令的定时和延时任务:

   at now+1min   #一分钟后执行       at 时间  #指定时间执行
   at>touch file

   ctrl+d #1分钟以后执行建立文件的操作

         对/mnt目录进行监控,以便进行对定时任务的查看:


         1.1   定时任务:在01:31时执行任务,输入执行指令后ctrl+d可以建立任务,其中1为任务编号:


          在01:31时,可以在监控界面里看到文件已经被建立即任务已经准时执行


        1.2   延时任务:在一分钟后即01:33建立文件file22:


       文件file22被建立:

   at -c 编号  #查看即将进行的任务的详细信息

         在02:00设定一个任务,可以看到任务编号为3,at -c 3 可以查看任务的内容,任务内容会在指令结果的最后面显示:


         可以看到任务的内容为建立文件file3:


   at -l 编号  #查看即将执行的任务时间

                  

   at -r 编号  #取消即将执行的任务

             可以看到任务取消之后,无法再查看到任务:


  1.3   使用黑名单和白名单进行设置后,可以设定指定用户对at指令的使用权限:

   黑名单   /etc/at.deny
  
白名单   /etc/at.allow
  
当空白白名单生效时,所有普通用户不得执行 at操作

   白名单存在时,系统不识别黑名单

       在/etc/目录下建立黑名单:

     

       在黑名单中写入限定权限的用户名称wetsos和linux,退出保存后该名单里面的用户无法使用at指令:

        

      切换到普通用户执行at指令,显示用户的at指令不被允许使用:


     有黑名单的存在,就有白名单的存在,黑名单里面的用户不能使用at指令,白名单指只有在白名单里面的用户可以执行at指令(超级用户除外),当白名单为空时,所有普通用户不得执行at指令。解除白名单的限制则需要删除掉白名单这个文件:


     可以看到白名单里面的westos和linux用户可以执行at指令。

     刚才在执行黑名单时,黑名单里面的禁止用户同样时westos和linux,但当同样的用户放在白名单时,黑名单里面与白名单相同名称的用户的权限限制将被解除,也就是说白名单的优先级比黑名单高,当白名单存在时,相同名称的黑名单用户限制将失效。


2.   crontab指令的定时任务:

   crontab -u root -e #以超级用户身份设定定时文件

   分钟  小时             
   *           *       *       *    *      #
每时每刻执行
   *        8-17    *       *    *      #
每天的8点到17点执行
   */2     8-17   1,15  *    *      #
每月的1号和15号的8点到17点,每2分钟执行一次

   */2     08-17 1,15 3-5 3    #3月到5月的每个周三,1号,15号的8点到17点,每两分钟执行一次

    在crontab -u root -e指令执行后的界面里,编辑定时任务的具体内容,其中分为5部分:分钟   小时  天  周  月  ,不特定强调的部分用*代替:


   crontab -u root -l       #查看即将执行的定时任务


  在02:03时指定文件被建立表示任务已经执行:


   crontab -u root -r       #取消即将执行的定时任务

   cat /var/spool/cron/root #查看用户级别的定时任务


   同样crontab指令的权限设置也可以通过黑名单和白名单来决定,设置方式与at指令的内容和情况相同:

   黑名单:/etc/cron.deny

   白名单:/etc/cron.allow

    同样还有使用脚本建立定时任务的方式:

          vim/etc/cron.d/westos     #/etc/cron.d目录下建立wetsos这个脚本

     编辑脚本内容:

          * * * * *  roottouch /mnt/file1  #以超级用户的身份每分钟建立文件  (在crontab -e 命令中,不需要强调用户,一般默认为执行指令的用户,但在写入指令时需要加上指令所在的目录/bin。在cron.d脚本中需要强调用户,指令不需要添加目录/bin)

         每天的02:05以超级用户的身份建立文件:


      

         查看任务:cat   /etc/cron.d/westos


3.  指定用户所建文件的定时删除:

   1. vim /usr/lib/tmpfiles.d/westos.conf

      编辑:d /mnt/westos 1777 root root5s    #5s之后超级用户删除/mnt/westos目录下的文件



   2 systemd-tmpfiles --creat /usr/lib/tmpfiles.d/*   #执行脚本文件

   3 touch /mnt/westos/file{1..5}                     #在指定目录下建立文件

4 systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*   #脚本文件执行后,新建的超过规定时间的文件将被删除



猜你喜欢

转载自blog.csdn.net/letter_a/article/details/80094592