1.系统延时任务
1. at命令的使用
at time //设定任务执行时间
rm -fr /mnt/* //任务动作
ctrl+D //发起任务
watch -n 1 ls /mnt打开一个监控窗口
原本/mnt目录下有10个文件,在01:04分执行rm -fr /mnt/* 的命令
时间一到,/mnt目录下的文件被删除。
at now+1min //延时1分钟
rm -fr /mnt/* //任务动作
ctrl+D //发起任务
这里任务的执行是正点正分,比如01:03:45发起任务,执行是01:04:00
at -l //查看任务列表
at -c 任务号 //查看任务内容
at -r 任务号 //取消任务执行
【注意1】
当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root //查看超级用户的邮件
1 //查看第一封邮件
q //退出
延时1分钟执行echo hello python
超级用户收到邮件,内容为执行任务的输出结果
> /var/spool/mail/root //清空邮件
邮件没清空之前还能看到任务执行的输出结果hello python,清空之后再cat,为空。
2. at任务的黑白名单
/etc/at.deny //系统中默认存在,在此文件中出现的用户不能执行at
在黑名单中写下student用户
切换到student用户,执行at命令,权限受制。
/etc/at.allow //系统中默认不存在,如果出现该文件,则普通用户不能执行at,只有在名单中出现的用户才可以。同时 /etc/at.deny失效。
2. 定时任务
大部分系统管理工作都是通过定期自动执行某个脚本来完成的,而cron功能即可帮助我们定期执行脚本。
systemctl start crond //开启服务
1. crontab时间表达方式
crontab -u //表示指定某个用户,不加-u选项则为当前用户
crontab -e //表示制定计划任务
crontab -l //表示列出计划任务
crontab -r //表示删除计划任务
2. 发起任务编写命令格式
分 时 日 月 周 命令(最好用绝对路径)
比如:
* * * * * rm -fr /mnt/* //每分钟执行一次对/mnt目录下文件的删除
*/2 * * * * rm -fr /mnt/* //每隔两分钟执行一次
*/2 08-17 1,15 3-5 3 rm -fr /mnt/* //在3-5月的每周三的1号和15号的8点到17点每隔两分钟执行
方法一:
使用crontab -e来编写任务计划,实际上是使用vim工具打开了crontab的配置文件/var/spool/cron/username文件。(如果用户是root,则打开的是/var/spool/cron/root)打开这个文件使用了vim,所以保存时在命令行模式下输入wq即可。
操作步骤如下:
1)打开监控:watch -n 1 ls -l /mnt
2)发起任务 crontab -u root -e
3)编辑内容为*/2 * * * * rm -fr /mnt/*
任务发起。文件没有被改动前,/mnt目录下还有5个文件
每隔两分钟执行任务,文件被改动后,/mnt目录下无文件。
方法二: 在/etc/cron.d目录下,创建一个文件westos。编辑文件,内容为*/2 * * * * root rm -fr /mnt/*
与crontab -e类似,但要指定用户
方法三:
echo "*/2 * * * * root rm -fr /mnt/* >/etc/cron.d/username
3. 临时文件创建与删除
系统中服务在正常运行时会产生临时文件,存放目录是/usr/lib/tmpfiles.d,系统临时文件的配置文件是/usr/lib/tmpfiles.d/.conf*
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* //创建临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* //删除临时创建的已存留5s的文件,时间不够的没有影响
下面我们自己实现一下,如何清理临时文件。
cd /usr/lib/tmpfiles.d
//这个目录存放了系统产生的临时文件以及这些临时文件的配置文件
//name.conf都是配置文件
vim potizo.conf //我们写一个处理临时文件potizo的配置文件
编辑内容如下:
其中d表示文件类型,/mnt/potizo是对哪个文件执行,777表示对文件授予权限为满,两个root分别为属主属组,表示以root用户root组的身份执行,5s表示时间。这一句配置内容意思是在5s后删除/mnt/potizo目录下的文件。
【注意】在自己创建临时文件的配置文件时一定要以.conf结尾。
操作步骤如下:
1)先在/usr/lib/tmpfiles.d目录下vim potizo.conf,并编辑内容
2)切换到/mnt下执行临时文件的配置
3)ls查看要执行的目录
4)ll查看文件权限开头的d表示配置成功
5)切换到potizo下,创建文件,并ll查看是否创建成功
6)执行清理临时文件的命令
7)ls查看创建的文件是否清理成功,是否按照规定时间才开始执行清理