配置系统定时重启任务,使系统在每季度(1、4、7、10月)的第一个周日晚上5:20重启系统。
添加定时任务
添加定时任务让系统定时执行脚本。这里我用的是batches用户执行的定时脚本,所以我要把配置写到/var/spool/cron/batches文件中
cat /var/spool/cron/batches
20 5 1-7 1,4,7,10 * sh /data/backup/script/reboot.sh
该任务会在1月、4月、7月、10月的1-7号的晚上5:20执行/data/backup/script/reboot.sh脚本
重启系统脚本
#!/bin/bash
if [[ $(date ‘+%m’) =~ ^(01|04|07|10)$ ]] && [ $(date ‘+%e’) -le 7 ] && [ $(date ‘+%u’) -eq 7 ]
then
sudo /sbin/shutdown -r now
fi
这段代码的主要逻辑如下:
- 使用
date '+%m'
命令获取当前月份,然后使用正则表达式判断是否为1月、4月、7月或10月; - 使用
date '+%e'
命令获取当前日期,并判断是否小于等于7; - 使用
date '+%u'
命令获取当前星期几,并判断是否为星期日(7); - 如果以上条件都满足,则执行
/sbin/shutdown -r now
命令来重启系统。
请注意,这是一个条件语句,只有在满足所有条件时才会执行重启系统的命令。如果要使用这段代码,请确保你具有管理员权限,以便执行重启系统的命令。