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

26 篇文章 0 订阅

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

  命令格式:at   时间  (回车后会换行输入待执行的命令,命令输入完毕按ctrl+d会建立定时任务或延时任务)

  定时任务:at  指定时间          举例:at  01:31        在1:31时候执行     

  延时任务:at  延时时间          举例:at  now+1min  一分钟以后执行

 1.1  定时任务:1:31分时在/mnt目录下建立文件file1

         为了便于定时任务效果的查看,使用watch命令设定每一秒进行对/mnt目录的监控:

         设定时间和命令后执行ctrl+d可以建立任务,其中1为任务编号:

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

 

 

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

                 效果:文件file22被建立:

 

1.3  其他的at常用命令

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

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

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

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

                  

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

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

1.4   使用黑名单和白名单进行设置指定用户对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   #以超级用户身份设定定时文件

crontab文件中的星号意义:  

  分钟  小时     天     月   周
   *           *         *       *    *      #每时每刻执行
   *        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部分:分钟   小时  天  周  月  ,不特定强调的部分用*代替:

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

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

2.2   crontab -u root -r       消root用户即将执行的定时任务

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

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

   黑名单:/etc/cron.deny

   白名单:/etc/cron.allow

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

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

     编辑脚本内容:

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

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

      

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

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

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

       编辑:d /mnt/westos 1777 root root  5s    #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/*   #脚本文件执行后,新建的超过规定时间的文件将被删除

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值