Linux定时及延时任务

xiaoxiao2022-06-11  24

一、定时任务:永久         延时任务:一次性     监控命令           watch -n 1   ls    -lR    /mnt    (l ==longer ;R==递归) 二、延时任务命令:at(存在内存中,关机清空) 1.at hh:mm | at now+1min at>   ... at>    <crtl+d> 开始执行 at  -l   ##列出所有延时任务 at  -c  job 号    ####查看某个任务的详细信息 at  -r  job 号    ####取消某个任务

操作:

[root@localhost ~]# at now+1min                ##一分钟后 at> touch /mnt/file{1..5}                                ##建立文件 at> <EOT>                                                   ##ctrl+d 执行命令 job 1 at Tue  Oct 23 09:41:00 2018         ##一分钟后是09:41:00运行 [root@localhost ~]# at  -l                    [root@localhost ~]# at 09:42                 ##在09:43时刻 at> rm -fr /mnt/file{1..5}                     ##删除文件 at> <EOT>                                            ##ctrl+d 执行命令 job 2 at Tue  Oct 23 09:43:00 2018 [root@localhost ~]# at -l                      ##查看任务内容的编号 2    Tue Oct 23 09:43:00 2018 a root    [root@localhost ~]# at -c 2                    ##查看任务详细内容 #!/bin/sh # atrun uid=0 gid=0 # mail root 0

[root@localhost ~]# at -r 2             ##取消job2任务  2.黑名单/etc/at.deny:本身存在。加入谁,谁不可执行;其他人都可以   白名单/etc/at.allow:本身不存在,有了白名单,则黑名单失效。加了谁,只有他和root可以执行;其他都不可以

测试:黑名单中加linux

          

     白名单加linux,黑名单失效,只有白名单和root可做延时任务

               

     三、定时任务 1.服务:chronyd.service(开启) 2.用户级定时任务 crontab -e -u 用户            ###添加某用户的定时任务

 分钟  小时    天     月     周      /bin/touch /mnt/file{1..3}       ##执行命令地址    *          *      *       *      *              ##每月每周每天每小时每分钟    */2       *      *       *      *       ##每月每周每天每小时每分钟2次    */2  08-17   *       *      *       ##每月每周每天8:00-17:00每分钟2次   */2  08-17   1,15   *      *      ##每月,每周,1和25号,8:00-17:00每分钟2次   */2  08-17   1,15   3-5   *     ##3到5月,每周,1和25号,8:00-17:00每分钟2次   */2  08-17   1,15   3-5   3     ##3到5月的1和25号以及每周3,8:00-17:00每分钟2次

  crontab -l            ###列出定时任务   crontab -r -u 用户            ###删除该用户的所有定时任务 3.任务存放地址:/var/spool/cron/用户 4.黑名单/etc/cron.deny:本身存在。加入谁,谁不可执行;其他人都可以   白名单/etc/cron.allow:本身不存在,有了白名单,则黑名单失效。加了谁,只有他和root可以执行;其他都不可以 5.系统级定时任务  vim /etc/cron.d/xxx  * * * * *  用户  命令 cat /etc/cron.d/xxx  查看  crontab -l看不了 cat /etc/crontab 看编辑格式 /etc/cron.d/0hourly 里设定了/etc/cron.hourly里的东西每整点执行

操作:

[root@foundation68 ~]# cd  /etc/cron.d       ##切换到cron.d [root@foundation68 cron.d]# ls                     ##查看这个目录下的文件 0hourly  raid-check  sysstat [root@foundation68 cron.d]# cat 0hourly      ##设定了/etc/cron.hourly里的东西每整点执行 # Run the hourly jobs SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 01 * * * * root run-parts /etc/cron.hourly         ##编写这个格式的命令 [root@foundation68 cron.d]# vim westos

                            *   *   *   *   *   root touch /mnt/file{1..5}   ##整分过1秒执行

四、临时文件管理(linux系统不卡顿原因) 1.系统会每天零点过一分时对未使用临时文件进行清理(--clean命令)。当电脑关闭时,定时任务不执行,在开机时,crond.service 服务开启状态里面的anaron服务对未执行的定时任务立即执行 2.正在使用临时文件存放位置:/usr/lib/tmpfiles.d   它里面的.conf文件里记录着临时文件生成策略:    类型  绝对路径   权限   所有人   所有组  子文件在系统存活时间 systemd-tmpfiles --create /usr/lib/tmpfiles.d/*   ###读取/usr/lib/tmpfiles.d/下所有配置文件的要求,按照要求执行 systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*    ###读取/usr/lib/tmpfiles.d/下所有配置文件的要求,按照要求删除临时文件目录中的过期文件 注:以上命令也是定时任务

实验步骤:    监控:watch -n 1 ls -R /mnt/ -l cd   /usr/lib/tmpfiles.d vim  westos.conf                   ##.conf是临时文件后缀      d /mnt/westos 1777 root root 5s          ##5秒后创建或删除 systemd-tmpfiles --create /usr/lib/tmpfiles.d/*        ##创建临时文件 touch  /mnt/westos/file                                   ##5s前创建 touch  /mnt/westos/file1                                ##5s中创建 systemd-tmpfiles  --clean  /usr/lib/tmpfiles.d/*           ##删除临时文件

ls  /mnt/westos                                 ##只有file1注意:配置文件中生成的文件夹不会被删除,但是文件夹内的文件会被清空

转载请注明原文地址: https://www.6miu.com/read-4930219.html

最新回复(0)