文章目录
前言
本文主要学在Linux中的系统延时任务的设定,因为在企业中经常会有设置延时任务的需求,比如定时清理日志文件,系统缓存文件,定时发送某些特定文件等。
一、系统延时任务
[root@localhost ~]# at 23:37 ##设定任务执行时间
at> rm -fr /mnt/westos ##任务动作
at> << CTRL +D ##用 ctrl+D 发起任务
[root@localhost ~]# at now+1min ##延时 1 分钟
at> rm -fr /mnt/westos
at> << CTRL +D ##用 ctrl+D 发起任务
at -l | 查看任务列表 |
---|---|
at -c 任务号 | 查看任务内容 |
at -r 任务号 | 取消指定任务执行 |
二、at任务的黑白名单
/etc/at.deny ##系统中默认存在,在此文件中出现的用户不能执行at
/etc/at.allow ##系统中默认不存在,当文件出现,普通用户不能执行at,只有在名单中的用户可以,并且/etc/at.deny 失效
注意:at.deny文件在系统中是默认存在的,只是初始状态下为空,即没有指定哪些用户不能使用at,如果将整个文件删除,将会导致用户使用at时产生权限错误。
3、系统定时任务
1、crontab 时间表示方式
* * * * * 分别表示:分 时 天 月 周
例如: */2 * * * * ##每两分钟
*/2 07-17 * * * ##早 7-晚 5 每两分钟
*/2 */2 * * * ##每隔 2 小时每两分钟
*/2 09-17 * * 5 ##每周周五早 9 晚 5
2、系统控制 crontab 的服务
crond.service##当程序开启时定时任务生效
3、crontab
crontab -e -u | -e表示创建crontab任务,-u表示指定用户 |
---|---|
crontab -l -u | -l表示查看指定crontab任务 |
crontab -r -u | -r表示取消crontab任务 |
4、系统级别的cron(文件方式设置定时任务)
[root@localhost ~]# cd /etc/cron.d
[root@localhost cron.d]# vim westos
* * * * * root touch /mnt/lee{1..3} #每整分 #用户名 操作命令
注意:采用系统级设置时,使用crontab -l无法查看系统级的crontab任务
5、crontab 的黑白名单
/etc/cron.deny##系统中默认存在,在此文件中出现的用户不能执行 crontab
/etc/cron.allow##系统中默认不存在,当文件出现,普通用户不能执行 crontab,只有在名单中的用户可以,并且/etc/at.deny 失效,这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
三、系统中临时文件的管理方式
cd /usr/lib/tmpfiles.d/ #临时文件存储路径
vim westos.conf #编辑文件,创建任务
d /mnt/westos 777 root root 8s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/xx #创建为临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xx #清除临时文件
以下为临时文件的配置文件:
clean清理是:设置的临时文件没有超过8s的不能被清理,只有超过8s的才能被清理。即8s为他的生命周期。
一般临时文件的清理我们都用定时任务来清理,如下:
对所有临时文件进行清理: