您的位置:首页 > 运维架构 > Linux

linux下的定时任务及临时文件

2016-06-16 10:21 686 查看
1、at 定时任务的建立,查询,删除2
2、crontab 命令2
(1)命令行的方式2
(2)通过写文件的方式3
3、crontab 的黑名单和白名单4
(1)黑名单4
(2)白名单4
4、系统的临时文件的原理4
(1)写一个管理自己临时文件的配置文件5
(2)使自己的配置文件生效5
(3)你可以在刚创建的目录baitmp里面创建文件5
(4)删除临时文件6

1 at 定时任务的建立,查询,删除

[root@foundation21 ~]# at now+3min 《建立》
at> touch /temp/file
at> <EOT>
job 2 at Sun Nov 2 14:10:00 2014
[root@foundation21 ~]# atq 《查看》
2Sun Nov 2 14:10:00 2014 a root
[root@foundation21 ~]# at -l 《查看》
2Sun Nov 2 14:10:00 2014 a root
[root@foundation21 ~]# at now+5min
at> touch /temp/file2
at> <EOT>
job 3 at Sun Nov 2 14:12:00 2014
[root@foundation21 ~]# at -l
2Sun Nov 2 14:10:00 2014 a root
3Sun Nov 2 14:12:00 2014 a root

[root@foundation21 ~]# atrm 3 《删除》
[root@foundation21 ~]# at -l
2Sun Nov 2 14:10:00 2014 a root
[root@foundation21 ~]# at 14:55 2016-06-18 《时间格式》

2 crontab 命令

(1)命令行的方式

[root@foundation21 ~]# crontab -e
45 22 * * * /usr/bin/touch /temp/file{1..10} #分钟 小时 天 月 周 命令 动作
通过下面的命令可以查看crontab所创建的定时任务存储文件



[root@foundation21 ~]# crontab -l ###查看设定的定时任务
*/1 * * * * /temp/bai

下图为crontab的使用方法








[root@foundation21 ~]# crontab -r ###删除定时任务
You have mail in /var/spool/mail/root

(2)通过写文件的方式

[root@foundation21 ~]# cd /etc/cron.
cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/

cron.d 中的文件,每分钟都会被扫描一次
cron.daily 目录里的文件,放的是每天执行一次的任务

[root@foundation21 cron.d]# pwd
/etc/cron.d
[root@foundation21 cron.d]# cat mycron
*/1 * * * * root /temp/bai ###需要在该文件中写出时间、用户、命令(注意权限)

* echo > /var/spool/mail/root
清空邮箱
必要时需要重启cron服务 systemctl restart crond.service

3 crontab 中的黑名单和白名单

默认是所有用户都可以执行crontab

(1)黑名单

[root@foundation21 ~]# 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)白名单

没有白名单文件的话就自己建立一个就好
[root@foundation21 ~]# ls /etc/cron.allow
ls: cannot access /etc/cron.allow: No such file or directory
[root@foundation21 ~]# vim /etc/cron.allow
[root@foundation21 ~]# cat /etc/cron.allow
student
[root@foundation21 ~]# 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)写一个管理自己临时文件的配置文件

[root@foundation21 tmpfiles.d]# cat tmpfile
d /temp/tmpfile 2755 student student 30s
注释:d 代表创建一个用来放临时文件的目录,x 代表普通文件
/temp/tmpfile 目录的名字
2755 目录的权限, 2是SGID student student 目录的用户和组 30s 每30s清理一次[root@foundation21 tmpfiles.d]# pwd
/usr/lib/tmpfiles.d

[root@foundation21 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)使自己的配置文件生效

[root@foundation21 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 任务 定时