前言:
在Linux系统中,在我们进行一系列操作任务时,有时需要特定的
时间去完成,例如当我们进行系统升级维护时,需要在用户量访问比较
少时进行系统维护,以减少损失,在Linux系统中定时任务与延时任务很
好的解决了这个问题。今天就分享一下Linux系统中的定时任务与延时任
务.
正文:
一、at命令
(1)使用at命令进行定时任务的执行
at 18:31 ###进行任务执行的时间的设定
rm -rf /mnt/* ###执行任务的内容
<EOF> ###任务编辑完成,Ctrl+d 进行退出
(2)使用at命令进行延时任务的设定
at now+1min ###延时任务的设定
rm -rf /mnt/* ###执行任务的内容
<EOT> ###使用Ctrl+d进行退出设定
(3)at的相关命令
相关命令 | 说明 |
at -l | 查看任务列表 |
at -c 任务号 | 查看任务内容 |
at -r 任务号 | 取消任务 |
1)查看任务列表
at -l ###查看任务列表
2)查看任务内容
at -c 5 ###查看5号任务的内容
3)取消任务内容
at -r 5 ###取消5号任务
at -r 4 ###取消4号任务
注意的是:当任务有输出时,输出会以邮件的形式发送给at任务的发起者
(4)邮件查看的相关命令
1)进行邮件的查看
mail -u root ###查看超级用户的邮件
1 ###查看第一封邮件
q ###进行退出
2)进行邮件的清空
> /var/spool/mail/root ###进行超级用户邮件的清空
二、at 任务的黑白名单
/etc/at.deny ###系统中默认存在的文件,在此文件中的用户不能执行at命令
/etc/at.allow ###系统中不存在的文件,当该文件出现时,/etc/at.deny失效,普通用户不能执行
1)建立at用户的黑名单
vim /etc/at.deny ###进行at黑名单用户文件的编辑
2)建立at命令用户的白名单
vim /etc/at.allow ###建立at用户的白名单
三、系统的定时任务
1、crontab 时间表示方式
* * * * * ###表示每分钟
*/2 * * * * ###表示每隔两分钟
*/2 09-17 * * * ###表示每天的9点到17点,每隔两分钟执行任务
*/2 */2 * * * ###每隔两小时两分钟执行任务
*/2 09-17 3,5 1 5 ###表示一月的3号和5号,每周5,9点到17点每隔两分钟执行任务
*/2 09-17 * * 5 ###表示每周5,9点到17点每隔两分钟执行任务
2、系统控制的crontab的服务
crond.service ###当服务开启时定时任务生效
crontab -e -u 用户名 ###编写定时任务,文件保存在/var/spool/cron/用户名下,不加-u 默认为命令行用户.本命令相当于编写/var/spool/cron/用户名文件,
解决普通用户不能进入该目录的问题
crontab -i -u 用户名 ###查看指定用户文件的内容
crontab -r -u 用户名 ###删除指定用户的文件
3、文件设定定时任务
systemctl status crond.service ###查看服务是否开启
vim /etc/cron.d/file ###进行文件的编辑,注意的是,该文件只能由超级用户编辑
编辑文件内容如下:
00 23 * * * root touch /mnt/file{1..10} ###进行任务的创建
4、crontab 的黑白名单
/etc/cron.deny ###系统的黑名单,系统中默认存在的,在此文件中的用户不能使用crontab命令
/etc/cron.allow ###系统的白名单,该文件系统中不存在,如果该文件建立,系统中的黑名单将失效
普通用户不能使用crontab命令,该文件中存在的用户可以使用
注意的是:黑白名单的建立不影响/etc/cron.d/目录中任务的建立
1)建立用户的黑名单
vim /etc/cron.deny ###进行用户黑名单的建立
cat /etc/cron.deny ###查看文件中的内容
2)建立用户的白名单
vim /etc/cron.allow ###进行用户白名单的建立
cat /etc/cron.allow ###查看文件中的内容
四、系统中临时文件的管理
1)进行文件的编辑
vim /usr/lib/tmpfiles.d/westos.conf ###进行文件的编辑
编辑内容如下:
2)使文件进行生效
systemd-tmpfiles --creat /usr/lib/tmpfiles.d/westos.conf ###使文件进行生效
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf ###清除已经超过保
护时的命令
注意的是:当使用systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf
进行文件的清除时,只有超过所设定的时间,文件才可被清除.