云网牛站
所在位置:首页 > Linux编程 > 在Linux系统中创建新用户帐户时发送邮件的Bash脚本

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

2019-07-30 16:20:47作者:戴均益稿源:云网牛站

本文提供在Linux操作系统中创建新用户帐户时发送邮件的Bash脚本。

在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

+------------------------------+

 

相关主题

使用useradd、adduser、newusers命令在Linux中创建用户帐户

精选文章
热门文章