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
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 《时间格式》
45 22 * * * /usr/bin/touch /temp/file{1..10} #分钟 小时 天 月 周 命令 动作
通过下面的命令可以查看crontab所创建的定时任务存储文件
![](http://s3.51cto.com/wyfs02/M00/82/D2/wKioL1diDZLwoV_SAABWEoIftCk220.png)
[root@foundation21 ~]# crontab -l ###查看设定的定时任务
*/1 * * * * /temp/bai
下图为crontab的使用方法
![](http://s1.51cto.com/wyfs02/M01/82/D3/wKiom1diDJWDATA0AAFYA3FpfaQ924.png)
![](http://s5.51cto.com/wyfs02/M01/82/D2/wKioL1diDariUEhBAAEMBBGlQ8s152.png)
[root@foundation21 ~]# crontab -r ###删除定时任务
You have mail in /var/spool/mail/root
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
student
[student@foundation21 ~]$ crontab -e 《可以看到student已经不能使用crontab了》
You (student) are not allowed to use this program (crontab)
See crontab(1) for more information
[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
《如果有白名单系统会忽略黑名单,因为系统只允许少数人执行,也就是说白名单的优先级高于黑名单》
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
结果就是
![](http://s2.51cto.com/wyfs02/M00/82/D3/wKiom1diDK_TaDH9AABwQY3KdWY195.png)
![](http://s4.51cto.com/wyfs02/M02/82/D2/wKioL1diDeDjFHF5AACxiAkpnpM649.png)
第二种方法是:30s之后执行(这个是配置文件中指定的)
![](http://s1.51cto.com/wyfs02/M00/82/D2/wKioL1diDfSx0Yi9AABPf18qqjA931.png)
如果你在30s内执行这个命令的话,由于文件的创建时间不够30s,所以会什么都不执行,如果创建时间足够30s,则如上图,创建的文件都会被清空。
第三种方法是:写crontab定时任务。
就是把systemd-tmpfiles --clean /usr/lib/tmpfiles.d/tmpfile 这个命令写在有关例行性文件里面。这也是软件正常清理临时文件的方式。
《安装一个软件,或者做某件事的时候,这个过程中肯定会生成自己的临时文件目录,最后会把临时文件的目录删除,或者定期清理临时文件目录》
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 -e45 22 * * * /usr/bin/touch /temp/file{1..10} #分钟 小时 天 月 周 命令 动作
通过下面的命令可以查看crontab所创建的定时任务存储文件
![](http://s3.51cto.com/wyfs02/M00/82/D2/wKioL1diDZLwoV_SAABWEoIftCk220.png)
[root@foundation21 ~]# crontab -l ###查看设定的定时任务
*/1 * * * * /temp/bai
下图为crontab的使用方法
![](http://s1.51cto.com/wyfs02/M01/82/D3/wKiom1diDJWDATA0AAFYA3FpfaQ924.png)
![](http://s5.51cto.com/wyfs02/M01/82/D2/wKioL1diDariUEhBAAEMBBGlQ8s152.png)
[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 tmpfiled /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结果就是
![](http://s2.51cto.com/wyfs02/M00/82/D3/wKiom1diDK_TaDH9AABwQY3KdWY195.png)
(3)你可以在刚创建的目录tmpfile里面创建文件
![](http://s4.51cto.com/wyfs02/M02/82/D2/wKioL1diDeDjFHF5AACxiAkpnpM649.png)
(4)删除临时文件
第一种方法是:rm -rf file第二种方法是:30s之后执行(这个是配置文件中指定的)
![](http://s1.51cto.com/wyfs02/M00/82/D2/wKioL1diDfSx0Yi9AABPf18qqjA931.png)
如果你在30s内执行这个命令的话,由于文件的创建时间不够30s,所以会什么都不执行,如果创建时间足够30s,则如上图,创建的文件都会被清空。
第三种方法是:写crontab定时任务。
就是把systemd-tmpfiles --clean /usr/lib/tmpfiles.d/tmpfile 这个命令写在有关例行性文件里面。这也是软件正常清理临时文件的方式。
《安装一个软件,或者做某件事的时候,这个过程中肯定会生成自己的临时文件目录,最后会把临时文件的目录删除,或者定期清理临时文件目录》
相关文章推荐
- Linux socket 初步
- Android Manifest 用法
- android之定时器AlarmManager
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户