1、前提 开发突然登录不上了设备,查看是密码过期了,所以针对用户密码剩余过期天数做个监控
2、例如chage 查看密码剩余过期天数
[root@liantong-jtfwq ~]# chage --list root 或 chage -l root
Last password change : Feb 25, 2019 // 上次密码修改的时间
Password expires : May 26, 2019 // 密码有效截至日期
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90 // 密码有效期90天(3个月)
Number of days of warning before password expires : 7 // 密码过期之前7天会提示密码过期
3、思路就是
用密码有效截止日期减去当前的日期,如果少于三天报警
脚本配置如下:
#!/bin/bash
user_name=$1
end_year=`chage -l ${user_name} | head -2| tail -1 | awk -F: '{print $2}'| awk -F',' '{print $2}'| awk '{print $1}'`
if [ "${end_year}" == "" ];then
exit 0
fi
end_mounth=`chage -l ${user_name} | head -2| tail -1 | awk -F: '{print $2}'| awk -F',' '{print $1}'| awk '{print $1}'`
case ${end_mounth} in
'Jan') end_mounth=1;;
'Feb') end_mounth=2;;
'Mar') end_mounth=3;;
'Apr') end_mounth=4;;
'May') end_mounth=5;;
'Jun') end_mounth=6;;
'Jul') end_mounth=7;;
'Aug') end_mounth=8;;
'Sep') end_mounth=9;;
'Oct') end_mounth=10;;
'Nov') end_mounth=11;;
'Dec') end_mounth=12;;
esac
end_day=`chage -l ${user_name} | head -2| tail -1 | awk -F: '{print $2}'| awk -F',' '{print $1}'| awk '{print $2}'`
end_date_s=`/bin/date -d "${end_year}"-"${end_mounth}"-"${end_day}" +%s`
star_date_s=`/bin/date +%s`
let diffday=(${end_date_s}-${star_date_s})/86400
echo ${diffday}
fi
上述脚本传入你要监控的用户,即可属于该用户密码剩余过期天数,在zabbix 页面触发器写上如果小于几就报警,即可达到此功能