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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的定时任务及临时文件相关的知识,希望对你有一定的参考价值。

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 定时任务的建立,查询,删除

[[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 目录的权限, 2SGID

  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下的定时任务及临时文件的主要内容,如果未能解决你的问题,请参考以下文章

linux 下的定时任务的设置

linux下的定时任务

Linux下的crontab定时执行任务命令详解

Linux下的crontab定时执行任务简要说明

Linux下的crontab定时执行任务命令详解

Linux定时任务-crontab