Linux进阶(12)--计划任务

一.一次性计划任务(at)

1.at命令的安装和启用

CentOS7自带,其他版本可能需要手工安装

yum install at
systemctl start atd
systemctl enable atd

2.at的使用

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

atq				#查看没有执行的计划任务
atrm [任务号]	#删除指定的计划任务

at允许使用一套相当复杂的指定时间的方法。
● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

案例1:三天后下午5点执行/bin/ls

# at 5pm+3 days
at>/bin/ls >/root/readme.txt
at>按Ctrl+D

am = 上午、pm = 下午、3 days = 3天

案例2:明天17点,输出时间到指定的文件中

# at 17:00 tomorrow
at>date>/root/readme.txt
at>按Ctrl+D

3.at的黑白名单

  • 黑名单:/etc/at.deny (系统中默认存在)
  • 白名单:/etc/at.allow (手工创建)

一旦出现白名单,黑名单则失效。

二.计划任务(crontab)

1.什么是计划任务

作用:操作系统不可能24小时都有人在操作,有些时候想在指定的时间点去执行任务(例如:每天凌晨 2 点去重新启动httpd),此时不可能真有人每天夜里 2 点去执行命令,这就可以交给计划任务程序去执行操作了。

即在指定的时间执行指定的操作!

  • 服务名称:crond.service
  • 配置文件:/etc/sysconfig/crond
  • 日志文件:/var/log/cron

2.显示当前账号下的计划任务

先检查crond服务是否开启

crontab -l
no crontab for root			#此时root账号下没有创建计划任务
							#可加参数-u指定用户

3.编写计划任务

☆计划任务编写规则

分 时 日 月 周  要执行的命令(必须用命令完整路径,可以使用which查看)
计划任务中的符号说明
*表示取值范围中的每一个数字
-做连续区间表达式的,要想表示1~7,则可以写成:1-7
/表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6

请添加图片描述

☆编写计划任务(用户级别)

crontab -e					#-e:使用vim编辑器编辑计划任务的文件
							#可加参数-u指定用户
							
#计划任务其实保存在/var/spool/cron/[用户名]的文件中

☆计划任务编写案例

案例1:每月1、10、22 日的4:45 重启network 服务

45  4  1,10,22  *  *  /usr/bin/systemctl restart network

案例2:每周六、周日的1:10 重启network 服务

10  1  *  *  6,7   /usr/bin/systemctl restart network

案例3:每天18:00 至23:00 之间每隔30分钟重启network 服务

*/30 18-23 * * * /usr/bin/systemctl restart network

案例4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启

3,15  8-11 */2 * * /usr/sbin/reboot

☆编写计划任务(系统级别)

在/etc/cron.d/该目录下新建一个文件(记得给文件加上执行权),计划任务的编写规则同上,以这种方式编写计划任务,一定要加上计划任务的执行者。系统级定时任务只有超级用户可以操作。
并且这种以文件的方式编写计划任务,不可以通过命令查看计划任务列表。

4.取消计划任务

crontab -r

5.计划任务的黑白名单

  • 黑名单:/etc/cron.deny (系统默认存在)
  • 白名单:/etc/cron.allow (手工创建)

一旦出现白名单,黑名单则失效。但这两个名单都不会影响/etc/cron.d/目录中定时任务执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值