课后作业:获取密码即将过期的警告提示
练习:给定一个用户,获取其密码警告期限,然后判断用户密码使用期限是否已经小于警告期限,如果小于,则显示"warn",否则显示密码还有多少天到期
提示:date +%s :今天距离1970年的秒数
Cat /etc/shadow 密码过期的时间
exit:退出脚本
退出脚本可以指定脚本执行的状态:exit 0.
#!/bin/bash user=$1 now_date=`date +%s` now_date=$[$now_date/24/3600] #get the user create day c_date=`sed -n '/^'$user':.*:$/p' /etc/shadow | cut -d: -f3` #获取提前警告天数 warn_date=`sed -n '/^'$user':.*:$/p' /etc/shadow | cut -d: -f6` #账户已创建天数 used_date=$[$now_date-$c_date] #账户有效使用天数 work_date=`sed -n '/^'$user':.*:$/p' /etc/shadow | cut -d: -f5` #账户剩余可使用天数 rest_date=$[$work_date-$used_date] echo "$user creat at $c_date" if [ $rest_date -lt $warn_date ] ;then echo "WARN,密码还有 $rest_date 天过期,请修改密码" else echo "该账户正常,还可以使用 $rest_date 天" fi
答案二:
#!/bin/bash build_day=`cat /etc/shadow | grep $1 |awk -F: '{print $3}'` max_allow_day=`cat /etc/shadow | grep $1 |awk -F: '{print $5}'` warn_day=`cat /etc/shadow | grep $1 |awk -F: '{print $6}'` second=`date +%s` today=$[$[$[$second/60]/60]/24] use_day=$[$today-$build_day] line=$[$max_allow_day-$warn_day] if [ $line -ge $use_day ] then echo "left day $[$max_allow_day-$use_day]" else echo "warn" fi
没有什么是写一万遍还不会的,如果有那就再写一万遍。

浙公网安备 33010602011771号