Linux从入门到精通——系统定时任务及延时任务

一.系统延时任务

1.使用的命令为:at

at 23:37             ##设定任务执行时间

at> rm -fr /mnt/*       ##任务动作at> <EOF>   <<ctrl +D    ##用ctrl+D发起

 

 

设定在具体时间执行任务

 

 

 桌面上的file文件在设定时间被删除

 


at now+1min           ##延时1分钟
at> rm -fr /mnt/*
at> <EOF>  

 


 

设定一分钟后删除桌面上的所有文件

 

 

可以看到一分钟后桌面上的文件都被删除了

 

 

at -l                 ##查看任务列表
at -c   任务号          ##查看任务内容
at -r   任务号          ##取消任务执行

 

 

查看待执行的任务,job后跟的数字即为任务号,由于五号任务已经执行过了,所以没有显示,可以看到桌面上已经建立有新的五个文件

 

 

显示任务内容

 

 

取消任务执行

 

 

注意:当任务有输出时,输出会以邮件的类型发送给at任务的发起者

mail  -u  username            ##查看指定用户的邮件
1                         ##查看第一封邮件
q                      ##退出

 

 

查看超级用户的邮件

 

 

查看超级用户的第一封邮件,按q推出

 



2.at黑白名单
> /var/spool/mail/root   ##清空邮件
vim /etc/at.deny        ##系统默认存在,在此文件中出现的用户不能执行at
vim /etc/at.allow        ##系统默认不存在,如果该文件存在,只有在该文件里的普通用户可以执行at命令,且默认不再读取at.deny

 

 1 vim /etc/at.deny                                                                   

 

 

yasuo用户没有权限使用at命令

 

 

而不在黑名单的zed用户则可以使用at命令

 

 

在白名单中的yasuo可以使用at命令,此时yauo虽然也在黑名单中,但是系统默认不再读取黑名单,而不在白名单中的zed则无法使用

 


二.系统定时任务
1.crontab 时间表示方式
* * * * *      ##每分钟
*/2 * * * *      ##每两分钟
*/2 09-17 * * *    ##在早九点到晚五点每隔两分钟
*/2 */2 * * *      ##每隔两小时两分钟
*/2 09-17 3,5 1 5   ##三月和五月的一号和每周周五,在早九点到晚五点每隔两分钟

 

使用man  crontab可以查看时间格式

 

 

 

2.系统控制crontab的服务


crond.service        ##当服务开启时定时任务生效,关闭时则不生效

 

 

 



3.crontab命令
crontab -e -u           ##编辑文件(edit),-u表示指定用户
crontab -l -u            ##显示文件(list)
crontab -r -u            ##删除文件(remove)

 

编辑格式为:

time    action

例如:

* * * * *  rm-fr /mnt/*

 

 1 crontab -e -u root                                                          

 

设定以root用户的身份每分钟清理一次/mnt目录

 

 

查看文件的内容

 

 

删除文件

 

 

 

/var/spool/cron/xxx       ##用命令编辑的文件的实际地址


4.以文件方式设定定时任务
vim /etc/cron.d/file    ##新建一个设定文件

编辑格式为:
time      username     action
例如:
* * * * *   root       rm -fr /mnt/*      ##以root用户的身份,每分钟清理一次/mnt目录

 

 1 vim /etc/cron.d/file                                               

 

退出保存后将看到每分钟都会打开一个shell(gnome-terminal命令可以打开新的shell)

 


使用输入重定向添加文件内容:
echo "* * * * *       username        action" > /etc/cron.d/file

 

 


注:这种方式设定的任务用crontab -e 是看不到文件内容的,只有超级用户才可以。

 

5.crontab黑白名单


/etc/cron.deny     ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow     ##系统中默认不存在,当文件出现,普通用户不能执行crontab,只有在名单中的用户可以,并且/etc/at.deny会失效


注:这两个名单都不会影响/etc/cron.d/目录中定时任务的发起和执行



三.系统中临时文件的管理

一些程序在运行的过程中会产生大量的临时文件,如在下载和安装'卸载软件、打开电子邮件和即时消息程序中的文件或传输文件时会创建临时文件。通常,创建临时文件的程序会在完成时将其删除,但有时候这些文件会被保留。临时文件被保留的原因可能有多种:程序可能在完成安装前被中断,或在重新启动时崩溃。为了提高运行速度,Internet Explorer 之类的 Web 浏览程序会在硬盘中保存网页的缓存,这也是临时文件。


cd /usr/lib/tmpfiles.d/      ##临时文件地址
vim legend.conf        ##新建一个处理临时文件的配置文件,名字任意,后缀必须是conf,否则系统不会读取

编辑格式为:

文件类型  文件名称  文件权限  所有者  所有组  存在时间
  d     /mnt/westos      777        root     root      8s  

 

 1 cd /usr/lib/tmpfiles.d

2 vim legend.conf                                         

 

 


systemd-tmpfiles --create  /usr/lib/tmpfiles.d/*  ##使临时文件配置生效

 

posted on 2018-08-06 22:06  对方正在输入你的  阅读(198)  评论(0编辑  收藏  举报

导航