计划定期任务和延迟任务的实现

 在Linux系统中,存在两种工作调度的方式,一种是例行性的,固定在某一个时间点执行什么任务,这种调度是永久的,也就是计划定期任务调度;另外一种为突发性的,就是这次做完以后就没有的那一种,也就是延迟任务调度。

1 延时任务(一次性)

1.1 at基本操作命令

 at是个可以处理仅执行一次就结束调度的命令,要执行at,必须要有atd这个服务。at命令的基本语法为:

at+发起任务的时间 然后输入要操作的令名 
ctrl+d         执行任务
at -l          查看任务队列
at -c 2        根据数字查看任务队列中任务2的内容
at -r 2        删除任务2
at now+2min    从当前时刻记时,两分钟之后执行任务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.2 at命令的用户白黑名单

/etc/at.deny  任务的黑名单,在此名单中的用户不能使用at创建任务
/etc/at.allow 任务的白名单,默认白名单不存在,可以自行创建,当白名单存在,黑名单就不起作用不会被读取
只要存在白名单 必须在白名单内的才能执行(不包括超户)

任务的黑名单
在这里插入图片描述
在这里插入图片描述
任务的白名单
在这里插入图片描述
在这里插入图片描述

2 计划定期任务

systemctl status crond.server 为定时任务的服务。cron设备管理必须按计划定期重复运行的程序。后台程序crond每分钟唤醒一次,以运行计划的任何用户使用crontab命令计划个人任务。系统管理员可以在系统范围配置文件中设置任务。
单个用户使用称为crontab(cron表)的文本文件登记任务
2.1 crontab命令

crontab -l            列出文件
crontab -r            删除文件
crontab -e            编辑文件
crontab -e            使用默认编辑器vi
crontab -e -u root    编辑用户root的定时任务,-u 表示身份
crontab -l -u root    查看用户root的定时任务
crontab -r -u root    删除用户root的定时任务
定时任务存储的文件所在:/var/spool/cron/root    若将该文件删除,则root用户的定时任务也将被删除

首先,使用man 5 crontab查看定时任务怎么来写呢?
在这里插入图片描述

分      时      日      月      星期 
*       *       *       *       *               每分钟都执行一次
*/2     *       *       *       *               每两分钟执行一次
*/2   09-17     *       *       *               每09-17点的两分钟执行一次
*/2   09,17    *       *        *              在九点和下午五点这两个小时每两分钟执行一次
*/2   09-17     1       *       *               每1号的九点到五点的两分钟执行一次
*/2   09-17     1       3       4               3月的每个周四和3月的1号在九点到下午五点每隔两分钟执行一次

接下来,使用crontab为用户建立计划定期任务

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2.2 定时任务的用户白黑名单

执行任务的权限:
vim /etc/cron.deny  执行任务的黑名单
但是当你是超户,crontab -e -u student 可以操作,因为是超户指定用户去做
但是黑名单中的用户本身不能去做

vim /etc/cron.allow   执行任务的白名单

用户黑名单

在这里插入图片描述
在这里插入图片描述
用户白名单

在这里插入图片描述
在这里插入图片描述

3 编辑系统中定时任务的脚本

 系统中会有定时任务的脚本,在脚本中规定什么时间执行什么操作。在/etc/cron.d 这个文件中存在0hourly,raid-check, sysstat 这些脚本,系统会定时去执行脚本中的任务。
 我们同样可以自己创建系统定时执行的脚本

  在/etc/cron.d目录下:
  1.脚本中执行少数命令:
   vim westos
    * * * * * root rm -fr /mnt/*        写入想要定期执行的任务
  2.如果有很多条命令 可以写成脚本指定一个目录去执行(该语句同样在/etc/cron.d写入)
    * * * * * root run-parts  /redhat
    mkdir /redhat
    cd /westos
    vim test.sh  
    #! /bin/bash   touch /mnt/file{1..10}
    chmod +x test.sh  给脚本执行权限

在这里插入图片描述
编辑指定目录下的定时任务的脚本
在这里插入图片描述
/redhat目录下的脚本被执行
在这里插入图片描述

/etc/cron.d目录下westos文件中的定时任务语句被执行

在这里插入图片描述

4 系统的临时文件服务

系统的临时文件服务为systemd-tmpfiles ,配置文件在: /usr/lib/tmpfiles.d/

cd /usr/lib/tmpfiles.d/
vim westos.conf     建立临时文件
d /mnt/westos 777 root root 10s         建立的/mnt/westos目录生命周期为10s

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*  会自动读取该目录下的全部文件
当文件超出生命周期时:systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*  清理该目录下的全部已经超出生命周期的文件

当文件没有超出生命周期,将不能被清理掉

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
########################The End####################################

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值