linux下的定时延时任务

1】系统延时任务

at 命令
作用:设定在某个时间执行设定任务,该任务至执行一次
1 固定时间

[root@localhost Desktop]# date        # 查看当前时间
Tue Apr 16 20:00:42 CST 2019          #显示时间
[root@localhost Desktop]# at 20:02    #在20:02执行命令
at> touch file<EOT>                 #ctrl+d  发起任务

在这里插入图片描述

at now+ 时间

[root@localhost Desktop]# at now+1min    #设定执行任务时间当前时间1分钟后
at> rm -fr file                        #设定任务执行的命令
at> <EOT>                            #ctrl+d  发起任务
job 2 at Tue Apr 16 20:11:00 2019
[root@localhost Desktop]# 

在这里插入图片描述

at -l                  #查看任务列表
at -c     任务号        #查看任务内容
at -r     任务号        #取消任务执行

在这里插入图片描述
在这里插入图片描述
at 黑名单设置

延时任务的黑名单 /etc/at.deny
系统中默认存在,出现在黑名单中的用户将无法使用at设定延时任务。
在这里插入图片描述
延时任务的白名单 /etc/at.allow
系统中默认不存在,如果自己创建,黑名单失效;只有出现在白名单中的用户才能使用at设定延时任务,超级用户不受限制
在这里插入图片描述
mail 命令
作用:
当延时任务有输出时候,并不是输出在终端上,而是以邮件的形式发送给任务的发起者。
执行date命令会输出当前时间:

[root@foundation47 ~]# date
Sat Apr 13 13:52:52 CST 2019

使用超级用户延时执行date命令,并没有时间输出到该终端,并且该延时任务已经执行

在这里插入图片描述
查看用户的邮件 mail -u 用户名
mail -u root# 查看超级用户的邮件
1 # 查看第二封邮件的详细信息
q # 退出
在这里插入图片描述

邮件的存放位置
/var/spool/mail/用户名 :每一个用户的邮件会被记录在以其用户名为名称的文件中
. > /var/spool/mail/root #清空root用户的邮件
在这里插入图片描述

3系统控制crontab的服务

crontab由crond.service 服务控制。当该服务开启时,所设定的定时任务才能生效。
4 文件的方式设定定时任务

创建/etc/cron.d/xxx 文件 ,在该文件中编写需要执行的定时任务
任务编写格式:* * * * * 用户(执行该任务的) 任务操作
*代表: 分 时 天 月 周
在这里插入图片描述
在这里插入图片描述

crontab  -e -u   设定
crontab  -l  -u    查看
crontab  -r -u   删除

文件的方式设定任务
注意:crontab又crontab.service服务控制。当服务开启时,所设定的定时任务才能生效。且文件设定时不受黑白名单的影响。
在这里插入图片描述
crontab白名单

/etc/cron.allow ##白名单 系统中默认不存在,须自行创建
注意:当文件出现,普通用户不能执行crontab,只有在名单中的用户可以,并且/etc/cron.deny失效

crontab黑名单

vim /etc/cron.deny  ##黑名单 系统中默认存在,在此文件中出现的用户不能执行crontab

系统中临时文件的管理

systemd-tmpfiles 系统用来创建、管理、删除临时文件的命令。
临时文件都存在有效期,当其有效期过了之后就可诶被清理,但是有效期没过就不能被清理。所以设置定时任务对系统的临时文件进行清理,在每次清理时过期的文件会被清理掉,只要设置合适的清理周期,就能保证系统中临时文件不会占用大量资源。

cd /usr/lib/tmpfiles.d  ##切换到管理目录
ls     ##查看
vim westos.conf  ##创建一个自定义的临时文件管理文件
d /mnt/shiyan 777  root  root 10s   ##清除在/mnt/shiyan/目录下创建超过10s的文件

在这里插入图片描述
systemd-tmpfiles是系统用来创建、管理、删除临时文件的命令。

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*  ##编写一个临时目录的规范文件,并扫描该规范文件创造出该目录
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*   ##使用该指令对临时文件的规范文件进行扫描,过期的临时文件会被清理

猜你喜欢

转载自blog.csdn.net/weixin_44818720/article/details/89343388