linux系统中的定时任务与延时任务

系统中的定时任务与延时任务:

.延时任务

   1.延时任务是我们规定在几点或者在多久之后让系统执行的某一任务

     设置延时任务的步骤:

           at time(时间)

           dosomething(具体的任务)

           ctrl+d(执行该延时任务)

            (左图是设置延时任务,设置在07:11的时候删除/mnt中的新建文件,右图是延时任务完成)

           

   2.延时任务的黑名单和白名单

         /etc/at.deny 是延时任务的黑名单,放在这个文件中的用户不能设置延时任务

         /etc下白名单是不存在的,需要我们自己建立,当建立白名单/etc/at/allow后,默认所有的用户都加入黑名单中,除了   写在白名单中指定的用户。

         放在黑名单中的用户不能设置延时任务

      未放在黑名单中的用户可以设置延时任务

.定时任务

 (一)定时任务的设置步骤:

         1. 定时任务可以设定在哪一天哪一小时等循环地做某一件事情

         2.我们可以用man 5 crontab来查看其具体用法

         3.crontab -u root -e 表示在超级用户身份下设置一个定时任务

                在文件中写入时间,格式为* * * * *分别表示分钟 小时 天 月 星期

                 

         4.crontab -u root -l 表示显示系统中的定时任务 

                 

         5.cat /var/spool/cron/root 

         6.crontab -u root -r 表示删除系统中所有的定时任务

  (二)定时任务的黑名单和白名单问题:

           /etc/cron.deny是定时任务中的黑名单,放在这个文件中的用户不能设置定时任务  vim /etc/cron/deny

            

           /etc/cron.allow是白名单,白名单建立时,默认所有用户被放在黑名单中,只有白名单中的用户可以设置定时任务。

           vim /etc/cron.allow   


  (三)另外一种设置定时任务的方法:

           1.显示/etc/cron.有哪些目录(按两次Tab键)

                 显示有cron.d/  cron.daily/ cron.hourly/ cron.mouthly/ cron.weekly/

                 分别表示自定义时间执行,每天,每小时,每月,每周执行一次

          2.cd /etc/cron.d

             vim linux

                    * * * * *  root touch /mnt/file{1..3}

             表示每分钟执行一次在/mnt底下建立file{1..3}

             我们可以用watch命令监控/mnt,观察是否在每分钟的开始建立文件file{1..3}

              


     需要我们注意的是:这两种方式都可以设置定时任务,不同的是,crontab形式设置的   是用户级别的定时任务,而在/etc/cron下是系统(超级用户)级别的定时任务。

.定时任务在清除系统临时文件中的应用

         为了防止系统中的资源被浪费,系统中有清理临时任务的机制,就是将一些滞留时间超过规定时间的文件清理

         而清理临时任务用到的就是定时任务

         1.首先我们用两个监控命令watch -n 1 ls /mnt -l

                           watch -n 1 ls -R /mnt -l

         2.系统中清除临时文件的文件都在/lib/tmpfiles中,我们进入该目录下

         3.在这里边建立自己的用来清除临时文件的文件

              vim linux.conf   

                     d /mnt/linux 1777 root root 10s  ( d表示linux.conf是一个目录   给其1777的权限  10s表示在/mnt/linux

                                                                           下创建超过10s的文件,在定时任务开启后,这些文件将被删除)

              cat linux.conf

        4.systemd-tmpfiles --creat /usr/lib/tmpfiles.d/*

           touch /mnt/linux/file     在/mnt/linux底下创建file文件

        5.systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*

               如果这条命令在建立file以后10s后执行,则/mnt底下的file会直接被清除

               如果这条命令在建立file以后10s内执行,则/mnt底下的file会在其建立10s后被清除

                

        这就是系统中清除缓存文件的原理。

猜你喜欢

转载自blog.csdn.net/jay_youth/article/details/80062875