我正在努力让工作变得聪明;确定消息将通过我从未使用过的“邮件”通过电子邮件发送。但我记得几年前我曾聪明地通过弹出文本框将警告直接发送到屏幕。我正试图弄清楚如何再次做到这一点。 “屏幕”命令的信息让我感到困惑。 tmux 同样。或者我想这可能是一个通知。当我有几周的时间来研究它时,我会让“邮件”工作,但现在我还是更喜欢弹出消息。
===================================================
在“smartd.conf”中:
DEVICESCAN -a -m <nomailer> -M exec notify -M test
...好吧,添加了完整路径,好多了:
DEVICESCAN -a -m <nomailer> -M exec /bin/notify -M test
...“notify”在 CLI 中运行良好,是一个可执行脚本:
/bin/notify-send "$(systemctl status smartd)"
...但是尽管:
systemctl restart smartd; systemctl status smartd
...报告没有错误,我没有得到“测试”结果。
顺便说一句,到目前为止,使用您提到的这些变量还没有任何结果。
...
$ smartd ... 显示两个通知,一个针对我的两个磁盘!那么为什么“systemctl restart smartd”没有显示任何内容?
答案1
您将需要notify-send
一个特殊的邮寄者:
首先,制作一个脚本,如下所示:
#!/bin/sh
/usr/bin/notify-send "$SMARTD_DEVICESTRING" "$SMARTD_MESSAGE"
其次,将其添加到您的路测描述的 smartd.conf 中:
-m <nomailer> -M exec /path/script
这<nomailer>
是一个特殊的地址,它告诉smartd
我们完全依赖作为 传递的脚本-M exec
。smartd
会将有关问题的所有信息放入环境变量集中并运行脚本(无参数,无标准输入)。如果脚本执行一些打印输出,其标准输出将转到syslog
.
如需补充阅读:man 5 smartd.conf
答案2
这是我做错的事情,从白猫头鹰的回答开始:
脚本“通知”:
#!/bin/zsh
/usr/bin/notify-send "$SMARTD_DEVICESTRING" "$SMARTD_MESSAGE"
... 工作正常。但必须是“chmod +x”才能使其可执行。 '/etc/smartd.conf' 中的活动行:
DEVICESCAN -a -m <nomailer> -M exec /aWorking/Zsh/System/notify -M test
...我假设如果在系统路径上就会找到“通知”,但是不行,您必须为其提供准确的文字路径。这是花费我最多时间的事情:
$ systemctl restart smartd
...不激活脚本(出于某种原因),你必须:
$ smartd
...然后它就会按预期启动。每个磁盘一条消息。
都好。