创建用户时通知我的脚本

创建用户时通知我的脚本

我根据在网上找到的信息创建了一个脚本,用于通知 SA 用户已添加到服务器。我已使用 cron 设置该脚本,每 5 分钟运行一次,以监控 /var/log/secure 文件中的差异,但如果没有任何变化,它仍会发送一封空白电子邮件。我如何编辑它以在没有任何变化时不发送电子邮件。脚本如下:

file="/var/log/secure"

while cmp "$file" "${file}_bkp"; do
  sleep 2
done
diff "$file" "${file}_bkp" | grep -e useradd | mailx -s "User Added On Server" [email protected]
cp "$file" "${file}_bkp"

答案1

我同意以下评论:更有效的检查方法是监视/etc/passwd文件而不是分析日志文件,因为日志文件可能是一个需要处理的大型密集文件。如果/etc/passwd检测到文件已更改,您可以比较文件的备份以查看更改的内容。

您可以根据您的确切需求进行自定义的简单示例。

# One-off initial Set up
md5 -q /etc/passwd > /etc/passwd.md5
cp /etc/passwd /etc/passwd.compare
# Cron job script logic
if [[ $(md5 -q /etc/passwd) != $(< /etc/passwd.md5) ]]
then
  # The passwd file has changed, do something!
  # 
  # Diff /etc/passwd with /etc/passwd.compare to get details, etc.
  # Send an alert with details
  # 
  # Prepare for the next time a change happens.
  md5 -q /etc/passwd > /etc/passwd.md5
  cp -f /etc/passwd /etc/passwd.compare
  #
fi

相关内容