云网牛站
所在位置:首页 > Linux编程 > Bash脚本:发送带有在“X”天内过期的用户帐户列表的电子邮件

Bash脚本:发送带有在“X”天内过期的用户帐户列表的电子邮件

2020-02-18 15:14:09作者:吴析稿源:云网牛站

本文中包含两个Bash脚本,它们可以帮助您收集有关系统上用户到期日的信息。我们创建的Shell脚本,将向您发送在10天内到期的用户帐户列表。

Bash脚本:发送带有在“X”天内过期的用户帐户列表的电子邮件

 

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脚本:发送带有在“X”天内过期的用户帐户列表的电子邮件

 

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脚本输出的截图。

 

相关主题

Bash脚本:在Linux系统中发送关于新用户帐户创建的邮件

精选文章
热门文章