判断逻辑:如果账号永不过期返回10;账号设置过期时间但离过期时间大于三天,返回20;如离过期时间小于等于三天返回1,告警。
#!/bin/bash
export LANG=en_US.UTF-8
exp="never"
edate=$(chage -l $USER|grep "Password expires" |awk '{print $4,$5,$6,$7}')
date1=$(date -d "+1 day"|awk '{print $2,$3,$6}')
date2=$(date -d "+2 day"|awk '{print $2,$3,$6}')
date3=$(date -d "+3 day"|awk '{print $2,$3,$6}')
if [[ $edate = *$exp* ]]; then
echo "10"
elif [[ $date1 = $edate ]] || [[ $date2 = $edate ]] || [[ $date3 = $edate ]]; then
echo "1"
else
echo "20"
fi
备注:使用if [[ $edate = “never” ]]做判断时报语法错误,所以设置了一个常量exp作比较。