为了监视机器,我希望在每次任何用户连接到机器或从机器断开连接时(甚至是根用户)收到例如电子邮件通知?
它是一台 Linux 机器,但我也很感兴趣是否也有适用于 BSD 的通用方法。
我是机器的管理员,但也有其他管理员。
谢谢!
答案1
您可能会使用 and 破解一些复杂的东西tail -F
,awk
但最简单的方法是使用perl
,因此您可以使用该File::Tail
模块(以监视相应的系统日志文件)和许多邮件发送模块之一(例如Mail::Send
或Net::SMTP
)来发送邮件它注意到用户已登录或注销。或者无法成功登录。或您希望收到通知的任何其他事件。
该File::Tail
模块包含的示例脚本已经可以完成您想要的大约 90% 的功能,它们可以轻松地进行调整以满足您的具体需求。
要监视的确切日志文件因发行版而异,例如,在 Debian 上您将监视/var/log/auth.log
,在其他发行版上它将是/var/log/syslog
或/var/log/messages
。
请注意,freebsd 默认情况下没有安装 perl,但它可以通过例如pkg add perl5.22
.这仅安装基本的 perl 语言,您必须使用 CPAN 来安装File::Tail
pr等库模块Mail::Send
。