linux下的定时任务及临时文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的定时任务及临时文件相关的知识,希望对你有一定的参考价值。
1 at 定时任务的建立,查询,删除
[[email protected] ~]# at now+3min 《建立》
at> touch /temp/file
at> <EOT>
job 2 at Sun Nov 2 14:10:00 2014
[[email protected] ~]# atq 《查看》
2Sun Nov 2 14:10:00 2014 a root
[[email protected] ~]# at -l 《查看》
2Sun Nov 2 14:10:00 2014 a root
[[email protected] ~]# at now+5min
at> touch /temp/file2
at> <EOT>
job 3 at Sun Nov 2 14:12:00 2014
[[email protected] ~]# at -l
2Sun Nov 2 14:10:00 2014 a root
3Sun Nov 2 14:12:00 2014 a root
[[email protected] ~]# atrm 3 《删除》
[[email protected] ~]# at -l
2Sun Nov 2 14:10:00 2014 a root
[[email protected] ~]# at 14:55 2016-06-18 《时间格式》
2 crontab 命令
(1)命令行的方式
[[email protected] ~]# crontab -e
45 22 * * * /usr/bin/touch /temp/file{1..10} #分钟 小时 天 月 周 命令 动作
通过下面的命令可以查看crontab所创建的定时任务存储文件
[[email protected] ~]# crontab -l ###查看设定的定时任务
*/1 * * * * /temp/bai
下图为crontab的使用方法
[[email protected] ~]# crontab -r ###删除定时任务
You have mail in /var/spool/mail/root
(2)通过写文件的方式
[[email protected] ~]# cd /etc/cron.
cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/
cron.d 中的文件,每分钟都会被扫描一次
cron.daily 目录里的文件,放的是每天执行一次的任务
[[email protected] cron.d]# pwd
/etc/cron.d
[[email protected] cron.d]# cat mycron
*/1 * * * * root /temp/bai ###需要在该文件中写出时间、用户、命令(注意权限)
* echo > /var/spool/mail/root
清空邮箱
必要时需要重启cron服务 systemctl restart crond.service
3 crontab 中的黑名单和白名单
默认是所有用户都可以执行crontab
(1)黑名单
[[email protected] ~]# cat /etc/cron.deny ###在该文件中加入不可用crontab用户
student
[student@foundation21 ~]$ crontab -e 《可以看到student已经不能使用crontab了》
You (student) are not allowed to use this program (crontab)
See crontab(1) for more information
(2)白名单
没有白名单文件的话就自己建立一个就好
[[email protected] ~]# ls /etc/cron.allow
ls: cannot access /etc/cron.allow: No such file or directory
[[email protected] ~]# vim /etc/cron.allow
[[email protected] ~]# cat /etc/cron.allow
student
[[email protected] ~]# logout
[student@foundation21 ~]$ crontab -e
no crontab for student - using an empty one
crontab: no changes made to crontab
《如果有白名单系统会忽略黑名单,因为系统只允许少数人执行,也就是说白名单的优先级高于黑名单》
4 系统的临时文件的原理
在linux操作系统中,管理系统临时文件的配置文件,都放在/usr/lib/tmpfiles.d/下面。
(1)写一个管理自己临时文件的配置文件
[[email protected] tmpfiles.d]# cat tmpfile
d /temp/tmpfile 2755 student student 30s
注释:d 代表创建一个用来放临时文件的目录,x 代表普通文件
/temp/tmpfile 目录的名字
2755 目录的权限, 2是SGID
student student 目录的用户和组
30s 每30s清理一次
[[email protected] tmpfiles.d]# pwd
/usr/lib/tmpfiles.d
[[email protected] tmpfiles.d]# ls
abrt.conf lvm2.conf spice-vdagentd.conf
tmpfile mdadm.conf subscription-manager.conf
gvfsd-fuse-tmpfiles.conf pam.conf systemd.conf
httpd.conf ppp.conf systemd-nologin.conf
initscripts.conf rpm.conf tmp.conf
iscsi.conf samba.conf x11.conf
legacy.conf saslauthd.conf
libselinux.conf selinux-policy.conf
(2)使自己的配置文件生效
[[email protected] tmpfiles.d]# systemd-tmpfiles --create tmpfile
结果就是
(3)你可以在刚创建的目录tmpfile里面创建文件
(4)删除临时文件
第一种方法是:rm -rf file
第二种方法是:30s之后执行(这个是配置文件中指定的)
如果你在30s内执行这个命令的话,由于文件的创建时间不够30s,所以会什么都不执行,如果创建时间足够30s,则如上图,创建的文件都会被清空。
第三种方法是:写crontab定时任务。
就是把systemd-tmpfiles --clean /usr/lib/tmpfiles.d/tmpfile 这个命令写在有关例行性文件里面。这也是软件正常清理临时文件的方式。
《安装一个软件,或者做某件事的时候,这个过程中肯定会生成自己的临时文件目录,最后会把临时文件的目录删除,或者定期清理临时文件目录》
以上是关于linux下的定时任务及临时文件的主要内容,如果未能解决你的问题,请参考以下文章