本文提供在Linux操作系统中创建新用户帐户时发送邮件的Bash脚本。
前言 脚本的作用是什么?它监视/var/log/secure文件,并在系统中创建新帐户时向管理员发出警报。我们无法经常运行此脚本,因为用户创建不经常发生,但是,我打算一天运行一次这个脚本。因此,我们可以获得有关用户创建的综合报告。 如果在昨天的日期“/var/log/secure”文件中找到了useradd字符串,则该脚本将向给定的电子邮件ID发送电子邮件警报,其中包含新用户详细信息。 注意:你需要更改电子邮件ID,而不是我们的电子邮件ID。
Bash脚本 # vi /opt/scripts/new-user.sh #!/bin/bash #Set the variable which equal to zero prev_count=0 count=$(grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | wc -l) if [ "$prev_count" -lt "$count" ] ; then # Send a mail to given email id when errors found in log SUBJECT="ATTENTION: New User Account is created on server : `date --date='yesterday' '+%b %e'`" # This is a temp file, which is created to store the email message. MESSAGE="/tmp/new-user-logs.txt" TO="ywnz@ywnz.com" echo "Hostname: `hostname`" >> $MESSAGE echo -e "\n" >> $MESSAGE echo "The New User Details are below." >> $MESSAGE echo "+------------------------------+" >> $MESSAGE grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | grep -v 'failed adding'| awk '{print $4,$8}' | uniq | sed 's/,/ /' >> $MESSAGE echo "+------------------------------+" >> $MESSAGE rm $MESSAGE mail -s "$SUBJECT" "$TO" < $MESSAGE fi
执行脚本操作 为new-user.sh文件设置可执行权限: $ chmod +x /opt/scripts/new-user.sh 最后添加一个cronjob来自动执行此操作,它将每天7点钟运行: # crontab -e 0 7 * * * /bin/bash /opt/scripts/new-user.sh 参考:在Linux系统下使用Crontab UI安全管理Cron定时任务。 注意:你将在每天7点收到一封电子邮件提醒,这是昨天的日志。 输出:你将收到类似下面的电子邮件提醒: # cat /tmp/logs.txt Hostname: 2g.server10.com The New User Details are below. +------------------------------+ 2g.server10.com name=magesh 2g.server10.com name=ywnz +------------------------------+
相关主题 |