1、脚本内容
根据我在工作中遇到的烦恼来写的,公司的服务器需要定期更新密码,但是总是忘记,等想起来的时候发现服务器密码已经过期了,有可能影响正常业务。我记得计划任务会停止执行。所以就写了下面这个脚本来定时提醒自己更新密码了。
注:脚本中的sendEmail需要自己安装。在网上自己找一下,免安装的。
#!/bin/bash
# 监控账号
Account="root"
# 提前通知天数
NoticeDay=8
# 邮箱地址
Email="xxxx@xxxx.com"
EmailPasswd="************"
# 账号过期日期
## 过期日期
ExpiresTime=$(chage -l ${Account} |awk -F"[ ,]" '/^Password expires/{print $(NF-3),$(NF-2),$NF}')
# 当前年月日
CurrentDateTime=$(date +'%Y%m%d')
# 密码过期前,提前邮件通知管理员还有多少天过期。提醒及时修改密码。
for i in $(seq ${NoticeDay});do
# 获取告警通知日期,这个日期需要通知管理员。
WarnningDateTime=$(date -d "${ExpiresTime} -$i day" +"%Y%m%d")
# 判断当天是否是需要告警的日期。
if [ ${WarnningDateTime} -eq ${CurrentDateTime} ];then
# 邮件通知
#echo "还有${i}天密码过期"
/usr/local/bin/sendEmail -f ${Email} -s smtp.exmail.qq.com -u "****** Server Password Expires Notice" -o message-content-type=html -o message-charset=utf-8 -xu ${Email} -xp ${EmailPasswd} -t ${Email} -m "<span style='color: red;font-size: 30px;'>注:</span><span style='color: green;font-size: 25px;'>服务器密码还有</span><span style='color: red;font-size: 25px;'> ${i} </span><span style='color: green;font-size: 25px;'>天过期,请及时登录服务器修改密码。</span>" &> /dev/null
fi
done
脚本中有些自定义的内容,可以按照自己的实际信息填写,如:邮箱,邮件标题,内容等
通过计划任务,每天执行一次即可。