对于运维工作来说,要保证服务7*24的正常运行,但是每个公司都会去分早晚班的执行吗,并不是的。那对于晚上没有运维在的场景下,要去进行业务的维护,应该怎么办,只能加班吗。答案一定是不是的。

脚本与计划任务的结合可以很好的解决这个问题,当你使用脚本做好了怎么样去操作服务的繁琐步骤后,可以结合计划任务(也就是定时任务)来让脚本在哪个时间开始执行。这样就解决了运维是否需要在场的问题。

脚本需要怎么去写就不多赘述了,随着工作经验的积累,写的脚本也会越来越多,此时只需要搭配计划任务去使用就好了。

准备好脚本所有的一切之后,就可以设置计划任务了。

首先确保crond服务是否正常运行

$ systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-03-06 18:51:51 EST; 1 weeks 0 days ago
 Main PID: 8774 (crond)
   CGroup: /system.slice/crond.service
           └─8774 /usr/sbin/crond -n

Mar 06 18:51:51 localhost.localdomain systemd[1]: Started Command Scheduler.
Mar 06 18:51:51 localhost.localdomain crond[8774]: (CRON) INFO (RANDOM_DELAY will be scaled with ...d.)
Mar 06 18:51:52 localhost.localdomain crond[8774]: (CRON) INFO (running with inotify support)

计划任务文件格式

* * * * * {{脚本所在路径}
# 五个*代表时间,分别是分、时、日、月、周

可以是0-59任意整数

*:表示每分钟
0:表示整点
1:表示几点1分
1,3,5,7:表示每个小时的1分、3分、5分、7分
1-5:表示每个小时的1-5分钟
*/10:n表示每十分钟执行一次
1-59/2:奇数分
2-59/2:偶数分

可以是0-23任意整数
*:表示每个小时
0:每天凌晨0点
1:每天凌晨1点
1,3,5,7:表示每天凌晨1点、3点、5点、7点
1-5:表示每天凌晨1点到5点
*/n:n表示每隔几小时执行一次
2-23/2:偶数整点
1-23/2:奇数整点

可以是1-31任意整数

*:表示每天
1:每个月1号
1,3,5,7:表示每月1号、3号、5号、7号
1-5:表示每月1号到5号
*/n:n表示每隔几天执行一次
1-31/2:奇数天
2-31/2:偶数天

可以是1-12任意整数

*:表示每个月
1:表示1月份
1,3,5,7:表示每年1月、3月、5月、7月
1-5:表示每年1月到5月
*/n:n表示每隔几月执行一次
1-12/2:奇数月
2-12/2:偶数月

可以是0-7任意整数,0和7都是表示周日

*:表示每周
1,3,5,7:表示每周1、周3、周5、周日
1-5:表示每周周1到周5
*/n:n表示每隔几周执行一次
1-7/2:奇数周
2-7/2:偶数周

* * * * * echo "123"   # 每天每分钟都会执行
1,3,5,7 * * * * echo "123"  # 每天每个小时的1分钟,3分钟,5分钟,7分钟
1-5 13-16 * * * echo "123"  # 每天13点到16点的1到5分钟
1,3 1-5 */2 * * echo "123"  # 每个月每隔2天的1点到5点的1分和3分

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0