Linux 系统延时任务及定时任务

 1.系统延时任务

首先我们需要在我们搭建好的yum环境下下载at软件

我们可以用命令at 后面加时间 来规定任务执行的时间 然后输入要执行的任务动作,最后用ctrl+d退出,比如下图

我们在/mnt下建立了5个文件,然后让系统在21:20执行rm -rf /mnt/* 这个 命令。我们可以看到在21:19:33时刻5个文件还在,21:20:00过后就被删除了

Linux 系统延时任务及定时任务

我们还可以用命令 at now+1min 来让系统延时1min来执行命令,如下图

还是在/mnt下建立9个file,然后用命令 at now+1min 让命令 rm -rf /mnt/* 延时一分钟执行,会发现我们建立的文件在21:28消失,而命令却是在21.27发出的

Linux 系统延时任务及定时任务

 我们可以用     at -l  查看任务    at -c  查看任务内容         atrm 取消任务执行

Linux 系统延时任务及定时任务

Linux 系统延时任务及定时任务

Linux 系统延时任务及定时任务

注意:当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root                 查看超级用户邮件
1                                 查看第一封邮件
q                                 退出

Linux 系统延时任务及定时任务

Linux 系统延时任务及定时任务

用命令 > /var/spool/mail/root      可以清空邮件

2.at任务的黑白名单
黑名单:/etc/at.deny            ##系统中默认存在,在此文件中出现的用户不能执行at
白名单:/etc/at.allow           ##系统中默认不存在,文件存在时,普通用户不能执行at
                                              注意:只有在名单中的用户可以,并且/etc/at.deny失效 

如下图

Linux 系统延时任务及定时任务 Linux 系统延时任务及定时任务
3.系统定时任务
1.crontab 时间表示方法

* * * * *                    分钟  小时  日  月   周
* * * * *                       每分钟
*/2 * * * *                    每两分钟
*/2 09-17 * * *           早9到晚5每两分钟
*/2 */2 * * *                每隔两小时每两分钟
*/2 09-17 3,5 1 5      每周五、一月、3号和5号、早9点到晚五点,每两分钟
如图,执行命令crontab 然后写入所要编辑的文件内容

Linux 系统延时任务及定时任务

然后我们可以在/var/spool/cron/root中找到它,如图

Linux 系统延时任务及定时任务


2.系统控制crontab的服务

当crond.server程序开启时,定时任务生效

3.crontab
crontab -e -u
crontab -l -u
crontab -r -u

4.文件方式设定定时任务
vim /etc/cron.d/file

注意:当crond.server程序开启时,定时任务生效

写入文件* * * * *  username action 如图

Linux 系统延时任务及定时任务
Linux 系统延时任务及定时任务

5.crontab 的黑白名单
crontab的黑名单 /etc/cron.deny      ##系统中默认存在,在此文件中出现的用户不能执行crontab
crontab的白名单 /etc/cron.allow     ##系统中默认不存在,文件存在时,普通用户不能执行crontab
                                                          注意:  只有在名单中的用户可以,并且/etc/cron.deny失效
                                                            这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行

4.系统中临时文件的管理方法
cd /usr/lib/tmpfiles.d
编辑文件 /usr/lib/tmpfiles.d/www.conf
d /mnt/westos  777 root root 8s  表示当创建文件或目录时,如果/mnt/file11不存在,8s就会以此属性创建目录。此目录不会被自动清除

如图

Linux 系统延时任务及定时任务

 

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*

Linux 系统延时任务及定时任务