我工作的环境是基于 Linux 的,有 100 多台服务器。每当有人连接存储设备时,我都需要收到邮件通知和弹出通知。我该如何配置?
答案1
最简单的方法是使用 cronjob 监控 /var/log/syslog 中的单词“mount”。此示例每 10 分钟运行一次。
#!/bin/bash
# Gets the time and date 1 minute ago (00:00 would return 23:59 previous day)
TIME=`date +"%b %d %H:%M" --date '-1 min'`
# Truncate the minutes
TIME=${TIME::-1}
# Gets the past 10 minutes of logs and looks for 'mount'
MOUNT=`grep "$TIME" /var/log/syslog | grep mount`
if [ {{ '${#MOUNT}' }} -ge 1 ]; then
echo -e "$MOUNT" | sendemail -t {{ email_address }} -f {{ from_address }} -u "$(hostname) Mount Detected" -s {{ smtp_server }} > /dev/null
fi
确保日期格式与日志中的格式匹配。您可以使用任何您想要的 sendmail 命令。如果您想要每分钟一次,只需删除时间截断行。如果您想要立即发送,则需要监视udisksctl monitor
输出。发送电子邮件后,您可以将任何电子邮件通知用于弹出窗口。