轻松通知远程 Linux/Unix 计算机上的任意事件

轻松通知远程 Linux/Unix 计算机上的任意事件

我正在寻找一种方法来轻松定义 Linux 机器上发生的某些事件的一次性通知。事件可能包括以下内容:file /tmp/my.lock is unlinked或者process 666 finished,或者,也许,一些更复杂的内容,例如process 'backup.sh' closed file 'backup.tgz' AND process 'backup.sh' exited with return code 0

通知也应灵活。例如,notify 192.168.0.100 via org.freedesktop.Notifications.Notify或。notify [email protected] via email

实际上,它类似于 Nagios,但专为非重复事件而设计,任务创建成本极低,几乎为零。我是一个梦想家吗?我应该自己写吗?还是我应该简单地使用 shell 脚本?

答案1

Nagios 只能通知一次事件。
我们用它来开票。
只需设置通知间隔 = 0(对于服务和主机而言)您将只会收到一次电子邮件/短信。

答案2

只是为了增加一些输入我应该自己写吗问题,您可以创建一个 FIFO 或平面文件作为自定义日志,并向自定义脚本添加命令,将重要输出写入该日志文件。或者,您可以创建一个简单的脚本,定期检查重要文件和进程的状态,并将其输出发送到该日志。

要在服务器上创建 FIFO:

mkfifo /var/log/mylog

要从服务器读取日志:

ssh user@host "tail -f /var/log/mylog"

将这些函数放入您的自定义脚本中,以便轻松写入日志:

function warning { echo -e "\e[33;1m :: \e[0m$@" > /var/log/mylog; };
function error { echo -e "\e[31;1m :: \e[0m$@" > /var/log/mylog; };
function information { echo -e "\e[32;1m :: \e[0m$@" > /var/log/mylog; };

然后通过发出以下命令将条目写入日志:

information "Some text"
warning "Some more text"
error "Some important text"

sendmail您可以类似地添加一个使用(或类似)向您发送邮件的shell 函数。

答案3

我认为inotifywatch,,pslogger并且syslog在某些自定义脚本中可能会起到作用。

相关内容