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

一、系统延时任务
【1】at定时命令的使用

at  22:45在22:45时执行
at  now+1min在现在时间再过1分钟后执行

在这里插入图片描述
【2】at 参数命令

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

例:
[root@localhost ~]$ at -l
4 Fri Jul 26 09:25:00 2019 a kiosk
[root@localhost ~]$ at -c 4
rm -fr /home/kiosk/Desktop/file{1…10}
[root@localhost ~]$ at -r 4 #取消任务执行
【3】当任务有输出命令时,输出会以邮件的形式发送给at任务的发起者

mail -u root  #查看超级用户邮件
1  #查看第一封邮件
q   #退出

例:at命令执行echo会将内容以邮件方式发给命令发起者
【1】发起命令
在这里插入图片描述
【2】时间未到查不到邮件
在这里插入图片描述
【3】时间到
在这里插入图片描述
【3】清空邮件

> /var/spool/mail/root #清空root的邮箱
> /var/spool/mail/kiosk #清空kiosk用户的邮箱

在这里插入图片描述
二、at命令白名单和黑名单

/etc/at.allow #at用户白名单,名单里可执行,不在则不能执行。
/etc/at.deny #at用户黑名单,名单里不可执行。

root用户不受限制 。root是管理者,文件只对操作者有用。
/etc/at.allow默认不存在,/etc/at.deny默认存在
当/etc/at.allow存在(自己建立)时,/etc/at.deny失效,不去执行
测试:
【1】设置黑名单
在这里插入图片描述
【2】功能执行
在这里插入图片描述
三、系统定时任务
【1】crontab时间表示方式
*   *    *    *    *
每隔  时间  天   月   周

* * * * *每分钟
*/2 * * * *每两分钟
*/2 09-17 * * *早9-晚5每两分钟
*/2 */2 * * *每隔2小时每两分钟
*/2 07-17 3,5 1 5每周周五的9-17点每隔两分钟执行一次以及1月3和1月5

【2】系统控制crontab的服务

systemctl stop crond.service #关闭服务,则不执行文件内容
systemctl restart crond.service #开启
systemctl status crond.service #查看状态

【3】crontab

crontab -u root -e以root身份打开编辑文件
crontab -u root -l以root身份查看文件内容
crontab -u root -r以root身份删除文件内容

测试:
[root@localhost ~]# touch /root/Desktop/file{1…10}
[root@localhost ~]# crontab -u root -e #打开文件编辑执行内容
crontab: installing new crontab
[root@localhost ~]# crontab -u root -l
在这里插入图片描述
[root@localhost ~]# systemctl stop crond.service
文件内容不执行
[root@localhost ~]# systemctl restart crond.service
执行
[root@localhost ~]# crontab -u root -r #删除任务
[root@localhost ~]# crontab -u root -l #再次查看任务
no crontab for root
【4】文件方式设定定时任务
只有超级用户可写

vim /etc/cron.d/file

** * * * username action
** * * * root rm -fr /mnt/*

【5】crontab的黑白名单

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

##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起和执行
用户黑名单中的用户(student)不能执行:
[root@localhost ~]# crontab -u student -e
[root@localhost ~]# vim /etc/cron.d/file
student  rm -fr /mnt/file{1…10}
[student@localhost ~]$ crontab
四、清除临时文件

/usr/lib/tmpfiles.d        #临时文件目录
vim westos.conf #创建临时文件westos.conf
systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf   #将westos.conf变为临时文件
touch /mnt/westos/file  #在westos.conf记载的目录下创建临时文件
/usr/lib/tmpfiles.d/westos.conf  #清除临时文件,只有生命周期到了才会被清除。

生命周期指文件的生命周期。
实验步骤:
在这里插入图片描述
【1】vim westos.conf
在这里插入图片描述
【2】使用watch -n 1 "ls -lR /mnt/ "
在这里插入图片描述
【3】systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf #将westos.conf变为临时文件
在这里插入图片描述
【4】touch /mnt/westos/file #在westos.conf记载的目录下创建临时文件
【5】systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf #清除临时文件,只有生命周期到了才会被清除。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值