本文中包含两个Bash脚本,它们可以帮助您收集有关系统上用户到期日的信息。我们创建的Shell脚本,将向您发送在10天内到期的用户帐户列表。
Bash脚本一:检查10天后到期的用户帐户列表 该脚本将帮助您检查终端上10天后到期的用户帐户列表,您也可以自定义,可以是“X”天: # vi /opt/script/user-password-expiry.sh #!/bin/sh /tmp/user-expiry-1.txt /tmp/user-expiry.txt echo "-------------------------------------------------" echo "UserName The number of days the password expires" echo "-------------------------------------------------" for usern in u1 u2 u3 u4 do today=$(date +%s) userexpdate=$(chage -l $usern | grep 'Password expires' |cut -d: -f2) passexp=$(date -d "$userexpdate" "+%s") exp=`expr \( $passexp - $today \)` expday=`expr \( $exp / 86400 \)` echo "$usern $expday" >> /tmp/user-expiry.txt done cat /tmp/user-expiry.txt | awk '$2 <= 10' > /tmp/user-expiry-1.txt cat /tmp/user-expiry-1.txt | column -t 将可执行的Linux文件权限设置为“user-password-expiry.sh”文件: # chmod +x /opt/script/user-password-expiry.sh 您将得到类似下面的输出,但是用户名和天数可能不同: # sh /opt/script/user-password-expiry.sh
Bash脚本二:发送带有10天到期的用户帐户列表的电子邮件 此脚本将发送一封邮件,其中列出了10天后到期的用户帐户,请注意更改成自己的邮箱或到期日: # vi /opt/script/user-password-expiry-mail.sh #!/bin/sh SUBJECT="Information About User Password Expiration on "`date`"" MESSAGE="/tmp/user-expiry.txt" MESSAGE1="/tmp/user-expiry-1.txt" TO="249562751@qq.com" echo "-------------------------------------------------" >> $MESSAGE1 echo "UserName The number of days the password expires" >> $MESSAGE1 echo "-------------------------------------------------" >> $MESSAGE1 for usern in u1 u2 u3 u4 do today=$(date +%s) userexpdate=$(chage -l $usern | grep 'Password expires' |cut -d: -f2) passexp=$(date -d "$userexpdate" "+%s") exp=`expr \( $passexp - $today \)` expday=`expr \( $exp / 86400 \)` echo "$usern $expday" >> $MESSAGE done cat $MESSAGE | awk '$2 <= 10' >> $MESSAGE1 mail -s "$SUBJECT" "$TO" < $MESSAGE1 rm $MESSAGE rm $MESSAGE1 将可执行的Linux文件权限设置为“user-password-expiry-mail.sh”文件: # chmod +x /opt/script/user-password-expiry-mail.sh 最后添加一个cronjob以使其自动化,它每天早上8点运行一次: # crontab -e 0 8 * * * /bin/bash /opt/script/user-password-expiry-mail.sh 参考:在Linux系统下使用Crontab UI安全管理Cron定时任务。 您将收到类似于第一个shell脚本输出的截图。
相关主题 |