系统的延时任务、定时任务以及清理临时文件

1.系统延时任务

例如:

watch -n 1 ls /mnt     监控/mnt的内容,时间间隔为1s
touch /mnt/file{1..10} 在/mnt中建立file1-file10
at 09:24 	       设定任务执行时间
rm -fr /mnt/*          任务动作
然后用ctrl+d            发起任务

09:23:30设置在09:24:00删除/mnt中的所有文件。
在这里插入图片描述
09:24:01时,/mnt中的所有文件已经删除。
在这里插入图片描述

at now+1min 建立新任务延时1分钟
at -l       查看任务列表

在这里插入图片描述

at -r 任务号 取消任务执行

在这里插入图片描述

at -c 任务号 查看任务内容

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

注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发出者

at now+1min
echo hello

在这里插入图片描述

mail -u root 查看超级用户的邮件
1 	     查看第一封邮件
q            退出

在这里插入图片描述

 > /var/spool/mial/root 清空超级用户的邮件

在这里插入图片描述

2.at任务的黑白名单

vim /etc/at.deny        系统中默认存在,再次文件中出现的用户不能执行at(黑名单)

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

vim /etc/at.allow       系统中默认不存在,当文件出现,普通用户不能执行at,只有再名单出现的用户可以(白名单)

假设我们在白名单内加入student,student此时可以用at命令。
在这里插入图片描述
新加用户westos,不可以用at命令。
在这里插入图片描述
注意:黑名单与白名单同时存在时,白名单优先。此时/etc/at.deny失效。

3.系统的定时任务

systemctl status crond.service 查看crond.service这个服务的状态

在这里插入图片描述

crontab -e -u root(编辑,指定用户,不指定用户即默认当前)
####
* * * * * rm -fr /mnt/* 即为每个整分钟删除/mnt中的文件一次(里面不写root)
####

1)crontab时间表示方式

man 5 crontab     可以查看crontab的使用说明
* * * * *         分别代表:分时日月周
* * * * *         代表每分钟执行一次
*/2 * * * *       每两分钟执行一次
*/2 09-17 * * *   早9到晚5每两分钟执行一次
*/2 */2 * * *     每个两小时每两分钟执行一次
*/2 09-17 1 3,5 5 3月和5月每周周五三月一和五月一9点到5点 每两分钟执行一次
*/2 09-17 * * 5   每周周五9点到5点每隔两分钟执行一次

2)系统控制crontab的服务

crond.service 当程序开启时,定时任务生效

3)crontab命令

crontab -l -u 用户名 列出用户的crontab

在这里插入图片描述

crontab -r -u 用户名       删除用户的crontab    
crontab -e -u 用户名       编辑用户的crontab
vim /var/spool/cron/用户名 查看用户的crontab

4)文件方式设定定时任务

文件方式建立定时任务:

cd /etc/cron.d/
vim file(file名称任意)
####
格式:* * * * * username action 
例子:* * * * * root rm -fr /mnt/* 
####

非交互式:

echo "* * * * * root rm -fr /mnt/*" > /etc/cron.d/file

注意:这种方式生成的crontab使用crontab -l看不见。

5)crontab的黑白名单(同at的黑白名单)

/etc/cron.deny 系统中默认存在,再次文件中出现的用户不能执行crontab。
/etc/cron.allow 系统中默认不存在,当文件出现,普通用户不能执行crontab,只有在这个名单中出现的用户可以,并且/etc/cron.deny失效。
这两个名单都不会影响/etc/cron.d目录中定时任务的发起和执行。

4.系统中临时文件的管理方式

cd /usr/lib/tmpfiles.d
vim westos.conf
####
d /mnt/westos 777 root root 5s
####
systemd-tmfiles --create /usr/lib/tmpfiles.d/* 读取地址中所有文件并按照其规则去建立目录
systemd-tmfiles --clean /usr/lib/tmpfiles.d/*  清理建立的目录中临时文件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dodobibibi/article/details/83471879