Linux下例行性工作自结

1.Linux下的例行性工作有两种:

            a)单一执行的例行性工作,也就是仅执行一次就可以了——at方式

            b)循环执行的例行性工作,每隔一定的周期执行一次

2.at方式的例行性任务的调度是由atd服务来控制的,所以atd服务如果默认开启的话,要用/etc/init.d/atd restart来开启atd服务;crontab方式的例行性任务的调度是由crond服务来控制的,所以crond服务默认没有开启的话,要用/etc/init.d/crond restart来开启crond服务。

3.单一执行的例行性工作——at方式

(1)atd的安全控制

         atd服务使用at.allow和at.deny两个文件来进行at的安全控制。在at.allow中配置的账户,或者不在at.dely中配置的用户才可以使用atd服务。

(2)使用方法:

            a)at [-mldv] TIME:设定一个例行性工作

            b)at -c 工作号码:查看指定号码的工作内容

            c)atq:相当于at -l,查看当前系统中有多少的at例行性工作

            d)atrm 工作号码:相当于at  -d,取消指定号码的例行性工作

其中设定一个at工作的例子如下:

[root@localhost ~]# at now + 5 minutes
at> /bin/mail root -s "testing at job" < /root/.bashrc
at> <EOT>     #这里输入ctrl+d表示结束输入

也就是在at命令后面接一个时间点,然后会进入一个at shell的环境,用户便可以输入自己要执行的命令,最后使用ctrl+d结束输入。

时间的格式有:
(1)HH:MM
eg: at 04:50   #表示04:50开始执行命令
(2)HH:MM YYYY-MM-DD
eg: at 04:30 2016-01-09  #表示在04:30 2016-01-09时间点执行命令
(3)HH:MM[am|pm] [Month] [Date]
eg: at 04:15pm March 17 
(4)HH:MM[am|pm] + num [minutes|hours|days|weeks]
eg: 
at 05:29am + 5 minutes  #表示在上午05:29后的5分钟开始执行任务
at now + 5 hours #表示5小时后开始执行任务

Remarks:使用batch,可以让系统在CPU比较空闲的时间来执行例行性任务

4.循环执行的例行性工作——crontab方式

(1)crond的安全控制

         crond服务使用cron.allow和cron.deny两个文件来进行crond的安全控制。在cron.allow中配置的账户,或者不在cron.dely中配置的用户才可以使用crond服务。

(2)crontab任务的两种配置方式

             a)crontab -e方式:例行性任务会被记录到/var/spool/cron/${账户} 文件里面了。

             b)写入/etc/crontab文件中的方式:有命令类型和目录规划两种设定的方式。如下:

#法一:命令形式,即是将需要执行的命令直接写到/etc/crontab中
*/30 * * * * work sh resize_quota.sh

#法二:目录形式,即是将需要例行化脚本放到一个目录中,然后使用run-parts  dir命令去执行dir中所有可执行脚本
01 * * * * root run-parts /etc/cron.hourly  #假设我们先每小时执行一个任务,就可以将任务的可执行脚本放到/etc/cron.hourly目录中,然后run-parts去执行/etc/cron.hourly目录下所有的可执行脚本

备注:如果修改了/etc/crontab可能不会立即生效,那么需要使用/etc/init.d/crond restart重启一下crond服务。

(3)关于crontab时间设定的规则

代表意义

分钟

小时

日期

月份

取值范围

0~59

0~23

1~31

1~12

0~7

其中周字段中0和7都表示星期天

几个特殊字符

特殊字符

代表含义

举例

*(星号)

无论在那个字段,表示该字段任何时刻都执行

0  * * * * command

表示每星期、每月份、每一天、每小时的0分钟的时候将调度

,(逗号)

0 3,6 * * * command

表示在每3点0分和每6点0分的时候,开始执行命令

-(减号)

0 3-6 * * * command

表示在每3点到6点的0分的时候,开始执行执行

/n(数字)

每间隔n单位

*/5 * * * * command

表示每5分钟执行一次命令,上面和0-59/5 * * * * command是一样的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是原来的你吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值