在系统创建新用户时发送邮件的 Bash 脚本 | Linux 中国
2019-08-08 07:15
591 查看
目前市场上有许多开源监测工具可用于监控 Linux 系统的性能。当系统到达指定的阈值时,它将发送邮件提醒。
它会监控 CPU 利用率、内存利用率、交换内存利用率、磁盘空间利用率等所有内容。但我不认为它们可以选择监控新用户创建活动,并发送提醒。
如果没有,这并不重要,因为我们可以编写自己的 bash 脚本来实现这一点。
我们过去写了许多有用的 shell 脚本。如果要查看它们,请点击以下链接。
这个脚本做了什么?它监测 /var/log/secure
文件,并在系统创建新帐户时提醒管理员。
我们不会经常运行此脚本,因为创建用户不经常发生。但是,我打算一天运行一次这个脚本。因此,我们可以获得有关用户创建的综合报告。
如果在昨天的 /var/log/secure
中找到了 “useradd” 字符串,那么该脚本将向指定的邮箱发送邮件提醒,其中包含了新用户的详细信息。
注意:你需要更改邮箱而不是使用我们的邮箱。
# 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="2daygeek@gmail.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
mail -s "$SUBJECT" "$TO" < $MESSAGE
rm $MESSAGE
fi
给 new-user.sh
添加可执行权限。
$ chmod +x /opt/scripts/new-user.sh
最后添加一个 cron 任务来自动化执行它。它会在每天 7 点运行。
# crontab -e
0 7 * * * /bin/bash /opt/scripts/new-user.sh
注意:你将在每天 7 点收到一封邮件提醒,但这是昨天的日志。
你将会看到类似下面的邮件提醒。
# cat /tmp/logs.txt
Hostname: 2g.server10.com
The New User Details are below.
+------------------------------+
2g.server10.com name=magesh
2g.server10.com name=daygeek
+------------------------------+
via: https://www.2daygeek.com/linux-bash-script-to-monitor-user-creation-send-email/
作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy
相关文章推荐
- 用 Bash 脚本发送新用户帐户创建的邮件 | Linux 中国
- 在系统创建新用户时发送邮件的 Bash 脚本
- 用 Bash 脚本发送新用户帐户创建的邮件
- 用Bash脚本将Linux普通用户添加为系统管理员
- 用shell脚本监控linux系统 自动发送邮件
- linux提取系统信息发送邮件脚本
- linux系统CPU内存磁盘监控发送邮件脚本之二
- 用linux脚本自动发送和收取邮件
- Linux下发送邮件命令:mutt 和 mail 以及 脚本
- 浅析linux下如何用脚本自动发送文本mail邮件
- Ghost博客系统在发送不了邮件邀请的时候怎么加用户
- linux 系统的负载与CPU、内存、硬盘、用户数监控脚本[marked]
- linux 发送邮件脚本
- 1.制作客户端邮件发送系统(winform版)实现用户注册时,向其油箱发送激活码邮件,并进行状态处理。
- 创建linux 用户登录脚本
- Linux基础入门及系统管理01-bash脚本编程之四文件测试及特殊变量19
- linux bash mailx发送邮件内容变成附件tcmime.1278.1278.1724.bin或ATT00001.bin
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
- SSMTP—让Linux系统从Office 365发送邮件
- 【扫盲贴】 linux系统如何创建新用户