linux下的系统定时任务

延迟任务

延迟任务的发起

可以使用at命令将延迟任务发起:
实验素材建立:

在/mnt/下新建文件,并使用watch命令将/mnt/监控:

watch -n 1 ls /mnt/*     ##建立监控建立/mnt下所有文件

重新打开一个shall,并在/mnt/下新建文件:

touch /mnt/testfile{1..5}     ## 在/mnt新建5个测试文件

在这里插入图片描述
到此,实验素材建立完成。

at命令

使用at命令将延迟任务发起:
格式为:at 时间
在这里插入图片描述
输入完成按回车键输入延迟内容:
在这里插入图片描述
延迟 03:34删除/mnt/所有文件:
在这里插入图片描述输入完成后,使用<ctrl+d>将任务发起:
在这里插入图片描述
在监控窗口可以看到,建立的testfile{1…5}成功在03:34删除:
在这里插入图片描述

同样的实验,使用at -l 可以查看任务队列 :
在这里插入图片描述
使用at -c 任务号 查看任务内容:
在这里插入图片描述
使用at -r 任务号 删除延迟任务:
在这里插入图片描述

当延迟任务有输出,输出会以邮件形式发送到任务发起者邮箱中

在rhel8中,默认没有安装mail命令,这里我们进行安装:
在这里插入图片描述

安装mailx:
在这里插入图片描述
安装邮件服务mailfix:
在这里插入图片描述

systemctl start postfix.service  ##重启postfix
systemctl enable postfix.service      ##设置postfix开机自启动

使用mail命令查看当前用户邮件信息:
在这里插入图片描述
当前用户(root)没有邮件消息。

mail 目标用户:给目标用户发送邮件,输入完成后回车,按‘.’进行发送:
在这里插入图片描述
清空邮件信息:
在这里插入图片描述
执行命令timedatectl。若不是延迟任务,则此命令在shall有输出:
在这里插入图片描述
现在,发起延迟任务timedatectl。这个时候在到任务执行时间后,并不会在shall中输出,而是以邮件形式发送给当前用户:

在这里插入图片描述
在邮件总能看到任务输出:
在这里插入图片描述
输入邮件编号,查看邮件消息:
在这里插入图片描述

at命令的控制

at黑名单

在默认情况下,系统中的任何用户都是可以执行at命令。
可以通过修改名单/etc/at.deny,此名单为at控制黑名单,此名单中的人不能执行at 命令
将用户xng添加进名单
在这里插入图片描述

切换到用户xng,使用at命令:
在这里插入图片描述
xng用户at命令不能执行。
切换到其他用户,使用at命令:
在这里插入图片描述

at 白名单

at白名单为/etc/at.allow 此文件默认不存在。当此文件存在,/etc/at.deny(黑名单)不生效,系统中普通用户默认不能执行at命令
,只有在名单的用户才有权执行at命令。

将haha添加进at.allow:
在这里插入图片描述
添加完成保存退出。
切换到用户haha执行at命令:
在这里插入图片描述
用户haha能够执行at命令。

切换到用户xng执行at命令:
在这里插入图片描述
用户xng不能执行at命令。

定时任务

延迟任务执行完毕后就任务结束了,不会进行循环执行。
而在系统管理的时候,经常要进行周期性的任务,所以会用到定时任务服务:crond

定时任务服务crond

可以看到定时任务服务在rhel7里默认是开启状态:
在这里插入图片描述

定时任务的设定方式

命令方式

用户级别定时任务)

crontab -u root -e 

-u为指定用户,-e为编辑任务。
回车后就可以编辑任务:
在这里插入图片描述
可以使用man 5 crontab 查看编写方式:
编写格式为:
时间 任务
可以看到时间的具体格式:

在这里插入图片描述
时间是按照:分钟 小时 天 月 周 的格式进行编辑。

注意:0和7都代表星期天。首先建立监控来监控/mnt/TEST

在这里插入图片描述
我们使用crontab -u root -e来进行编辑定时任务:在12:11分在/mnt/TEST下建立file{1…5}
在这里插入图片描述在12:11分,文件成功建立:
在这里插入图片描述
使用crontab -u root -l 查看定时任务:
在这里插入图片描述
使用 crontab -u root -r取消root用户发起的定时任务。
在这里插入图片描述

定时任务会存放在系统的/var/spool/cron/用户 这个文件里:
在这里插入图片描述
时间的各种设定方式举例:

08-17   * * * *       ##每天每小时08分-17分 
08-17   * * * 3,5     ##每周3和周五每小时08分-17分 
08-17/2 * * * 3,5     ##每周3和周五每小时08分-17分时间段每隔2分钟 
08-17/2 10 * * 3,5    ##每周3和周五10点08分-17分时间段每4隔2分钟 08-17/2 10 5 * 3,5    ##每周3和周五及每月5号10点08分-17分时间段每隔2分钟
08-17/2 10 5 3 3,5   ##3月每周3和周五及3月5号10点08分-17分时间段每隔2分钟

文件形式

(系统级别定时任务)
系统级别cron设定文件存放路径 :/etc/cron.d
在此目录中进行文件形式编辑:

在这里插入图片描述

可以看到,到整分钟时/mnt/TEST/file{1…5}被成功删除!
在这里插入图片描述
所以只需要在/etc/cron.d/下新建定时文件即可。
格式为: 时间 用户 任务

注意:/etc/cron.d/目录权限如下:
在这里插入图片描述
只有超级用户可写,即系统级定时任务只有超级用户可以操作。

可以看到,在/etc下,还有有关cron的一些目录:
在这里插入图片描述
这些目录具体存放内容如下:

文件存放内容
/etc/cron.daily/每天任务
/etc/cron.hourly/每小时任务
/etc/cron.monthly/每月任务
/etc/cron.weekly/每周执行动作

在我们编写定时文件完毕后,记得给文件加上执行权!
在/etc/cron.hourly/下会有检测定时任务漏执行的脚本:
在这里插入图片描述
如果检测到漏执行任务,会立即执行此任务。

当定时任务有输出,输出会以邮件形式发送到任务发起者邮箱中

这一点与延迟任务相同:
定时任务,执行命令timedatectl
在这里插入图片描述
当有输出是,不会在shall界面输出。会以邮件方式发送给定时任务发起人:
在这里插入图片描述

用户级别crond控制设定

vim /etc/cron.deny   ##cron用户名单,用法同at.deny 
vim /etc/cron.allow   ##cron白名单,用法同at.allow

具体使用方法参考上边’at黑名单’‘at白名单’使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值