linux基础篇(十):基于Redhat7系统中的定时任务

定时任务CRONTAB概念/介绍

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

定时任务格式,语法及应用

格式

*			*			*			*			*				####
分钟			小时			天			月			周			要执行的命令
crontab 文件中每个条目中各个域的意义和格式:
第一列 分钟: 1——59
第二列 小时: 1——23(0表示子夜)
第三列 日 : 1——31
第四列 月 : 1——12
第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)
第六列 要运行的命令

我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中Cn可以用 * ; */n ; T1-T2; a,b,c; 四种形式来表示:

当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推…

当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推…

当 C1 为 */n 时表示每 n 分钟的时间间隔执行一次,C2 为 */n 表示每隔n小时的间隔执行一次,依次类推…

当 C1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,C2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,依次类推…

语法及应用

crontab    -u root -e					创建定时任务,-u表示可以执行脚本的用户
crontab    -u root -l 					查看定时任务
crontab    -u root -r 					删除定时任务

实例

 55 17 * * * touch /mnt/file{1..5}
表示在17:55分在/mnt/目录创建file1-file5五个文件

在这里插入图片描述
在这里插入图片描述
删除定时任务
在这里插入图片描述

 */5 * * * * date
表示每5分钟执行一次date命令

 0 20 * * 1-5 mail -s "**********" kerry@domain.name < /tmp/maildata
周一到周五每天下午 20:00 寄一封信给 kerry@domain.name

定时任务黑白名单

定时任务白名单

/etc/cron.allow #####建立定时任务白名单后,默认除了root用户外的其他用户全部被列入黑名单中,意为只有root用户可以执行定时任务,其他用户要想执行定时任务,必须将用户添加到定时任务白名单中
我们可以先建立一个延时任务白名单(直接创建/etc/cron.allow文件就行),然后切换到另一个普通用户,用此用户执行crontab定时任务
在这里插入图片描述
从图中我们可以看出在建立定时任务白名单之后,切换到student用户后执行crontab任务失败,现在我们可以将student用户添加到定时任务白名单中,再用student用户执行定时任务,看看会有什么变化
在这里插入图片描述

在这里插入图片描述
可以看到在将student用户加入到定时任务白名单之后,student用户可以执行crontab定时任务

定时任务黑名单

/etc/cron.deny
建立延时任务黑名单后,如果不想让某一个用户执行crontabb延时任务,可将此用户添加到延时任务黑名单中
在这里插入图片描述

全局性计划任务

当我们要增加全局性的计划任务时,一种方式是直接修改/etc/crontab。
但是,一般不建议这样做,/etc/cron.d目录就是为了解决这种问题而创建的。
例如,增加一项定时的备份任务,我们可以这样处理:在/etc/cron.d目录下新建文件demo,内容如下:

          • root touch /mnt/file{1…5} 整分过一秒以root身份在/mnt 下创建五个文件
            在这里插入图片描述
            在这里插入图片描述
            在这里插入图片描述

临时文件

/usr/lib/tmpfiles.d/ 和 /etc/tmpfiles.d/ 中的文件描述了 systemd-tmpfiles 如何创建、清理、删除临时文件和目录,这些文件和目录通常存放在 /run 和 /tmp 中。配置文件名称为 /etc/tmpfiles.d/.conf。此处的配置能覆盖 /usr/lib/tmpfiles.d/ 目录中的同名配置。

cd /usr/lib/tmpfiles.d
vim westos.conf
写入:d /mnt/gd 1777 root root 10s
在这里插入图片描述
在这里插入图片描述

touch /mnt/gd/file
systemd-tmpfiles --clean /usr/lib/tmpfiles/* ###清除所创建文件,但必须在所定时间之后才能删除成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值