Linux——延时任务与定时任务

一、延时任务

  1. 延时任务:系统的延时任务是通过at命令是实现的,负责这个延时任务的服务是atd服务,通常这个服务是默认开启的
  2. 延时任务的发起过程
    (1)at time       表示在某一时刻发起任务
    (2)dosomething    任务具体执行的内容
    (3)ctrl+d        保存该命令
  • 测试
    (1)先在/mnt下建立文件,并采用监控命令监控/mnt里的内容
    在这里插入图片描述
    监控命令如下
    在这里插入图片描述
    在这里插入图片描述
    (2)发起延时任务(06:34分删除/mnt下的所有东西)
    注意:这里是重新打开一个shell进行测试
    在这里插入图片描述
    延时任务执行的时间为06:34分过一秒
    在这里插入图片描述
  1. 延时任务的常见命令
  • at  -l   查看任务
    在这里插入图片描述
  • at  -c  +任务号    查看任务内容
    在这里插入图片描述
    在这里插入图片描述
  • at  -r  +任务号    撤销任务
    在这里插入图片描述
  • at  now+1min  从现在起延时一分钟发起任务
    在这里插入图片描述
  1. 延时任务的黑名单
  • /etc/at.deny 是延时任务的黑名单,放在这个文件中的用户不能设置延时任务
  • 测试
    (1)编辑延时任务的黑名单,将westos用户写入
    在这里插入图片描述
    在这里插入图片描述
    (2)切换到westos用户后,不能使用at命令
    在这里插入图片描述
    student用户可以正常使用
    在这里插入图片描述
  1. 延时任务白名单
  • 黑名单本身存在,而白名单本身不存在
    在这里插入图片描述
    在这里插入图片描述
  • 所以我们要建立白名单
    在这里插入图片描述
  • 当白名单被建立出来,默认所有的用户都加入黑名单,只用在白名单中的用户可以设置延时任务
    (1)测试一:当白名单建立出来以后,westos和student用户默认加入黑名单,不能设置延时任务
    在这里插入图片描述
    在这里插入图片描述
    (2)测试二:编辑白名单,将student用户写入
    在这里插入图片描述
    在这里插入图片描述
    发现student用户可以设置延时任务,而westos仍然在黑名单中,不能设置延时任务
    在这里插入图片描述
    在这里插入图片描述

二、定时任务

  1. 定时任务:延时任务只能执行一次,对任务进行一次调度,但是如果我们想循环调度某个工作,就必须采用定时任务
  2. 命令:crontab
    注意:此命令的使用必须在crond服务开启的前提下才能使用
    在这里插入图片描述
  3. 定时任务的发起
  • 在student用户身份下设置一个定时任务
    在这里插入图片描述
  • 任务格式设置如下:
    在这里插入图片描述
    * * * * *       分别代表 分 时 日 月 周
    * * * * *       rm -fr /mnt/*    表示每一天的每一分钟执行此任务(执行的时间为每分过一秒)
    */2 * * * *       rm -fr /mnt/*    每一天的每两分钟
    */2 09,17 * * *     rm -fr /mnt/*   每一天9点和下午5点的每两分钟
    */2 09-17 * * *     rm -fr /mnt/*    每一天9点到下午5点的每两分钟
    */2 09-17 * * 2     rm -fr /mnt/*    每周二9点和下午5点的每两分钟
    */2 09-17 1,15 * 2   rm -fr /mnt/*    每月1号和15号以及每周二9点和下午5点的每两分钟
    */2 09-17 1,15 7 2   rm -fr /mnt/*   7月1号和15号以及每周二9点和下午5点的每两分钟
  • 查看定时任务的方式以下两种
    1.crontab  -u  root  -l
    2.cat  /var/spool/cron/student
    在这里插入图片描述
  • 测试
    (1)切换到student用户下,在其家目录下建立文件,并使用监控命令对其家目录进行监控
    在这里插入图片描述
    在这里插入图片描述
    发现整分过一秒后,家目录下的东西被清空
    注意: 定时任务是循环调度的,如果再在student家目录中建立文件,那么整分过一秒仍会执行删除命令,不像延时任务只能执行一次
    在这里插入图片描述
  • crontab  -u  student  -r  表示删除系统中所有的定时任务
    在这里插入图片描述
    4. 定时任务黑名单
  • /etc/cron.deny 是定时任务的黑名单,放在这个文件中的用户不能设置定时任务
  • 测试
    编辑定时任务黑名单,将westos用户写入
    在这里插入图片描述
    在这里插入图片描述
    发现westos用户不能设置定时任务,而student用户可以
    在这里插入图片描述
  1. 定时任务白名单
  • 同延时任务一样,定时任务的白名单不存在,需要我们手动创建
    在这里插入图片描述
  • 当白名单创建成功后,所有用户默认进入黑名单
    在这里插入图片描述
  • 编辑定时任务白名单,只有在白名单里存在的用户才能设置定时任务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 注意: 如果在root用户身份下指定student用户(本身在黑名单中)设置定时任务,是可以实现的
    在这里插入图片描述
  1. 设置系统级的定时任务
  • crontab形式设置的 是用户级别的定时任务
    而在/etc/cron.d下设置的是系统级别的定时任务
  • 设置方式:
    在这里插入图片描述
    在这里插入图片描述
    注意 这里的设置格式与crontab方式有不同

三、临时文件

  1. 临时文件概念: 清理定时任务的文件就是临时文件
  2. 作用: 为了防止系统中的资源被浪费,系统中有清理临时任务的机制,将一些滞留时间超过规定时间的文件清理
  3. 存放位置: 在系统中 /usr/lib/tmpfiles.d/ 目录下存放
  4. 示例:
  • 切换到系统存放临时文件的目录下
    在这里插入图片描述
  • 建立自己的用来清除临时文件的文件
    在这里插入图片描述
    在这里插入图片描述
    注意:
    d 表示文件类型是目录
    /mnt/westos 表示要执行的文件
    777 表示对文件授予权限为满权限
    两个root表示,以root用户root组的身份去执行
    8s 表示在/mnt/westos下创建的文件生命周期超过8s才可以被清理
  • 重新打开一个shell,用监控命令监控/mnt下的内容
    测试前可以先将/mnt下的东西清除掉,保持测试环境纯净
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • systemd-tmpfiles --create /usr/lib/tmpfiles.d/*   执行临时文件配置
    则/mnt下会创建一个westos目录,且权限为满
    在这里插入图片描述
    在这里插入图片描述
  • 在/mnt下创建一个file文件
    在这里插入图片描述在这里插入图片描述
  • systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* 表示清除满生命周期的文件
    在这里插入图片描述
    在这里插入图片描述
    例如上面创建的/mnt/westos/file1,从文件创建那一刻开始时间满8秒,执行clean就会删除,如果没有达到生命周期(8秒),则不会删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值