我需要从 bash 脚本发送咆哮通知,但我无法安装 growlnotify 命令行工具或可以执行类似操作的 perl 模块。我可以编写任意 bash 脚本,并且在快速清点这台 linux 机器上可用的内容后,我似乎拥有了 netcat。
我可以以这种方式发送咆哮通知吗?我一直在修补这样的事情:
echo -ne "GNTP/1.0 NOTIFY NONE MD5:04cf1ad341ea8e51d7bb314424276c38.6162636465666768\r\nApplication-Name: test Notification-Name testtest Notification-Title: blah \r\n\r\n" | nc -v 127.0.0.1 23053
但我不清楚该协议实际上是如何工作的。我假设当客户端订阅另一台计算机时,他们基本上将自己注册到服务器要连接的计算机列表(超过 23053),发送格式化消息,可能等待回复,然后断开连接。由于我的 bash 脚本将包含要发送到的机器的列表(或者更有可能,接受列表作为参数),因此此订阅步骤可以跳过(除非我需要传递魔法值!)。
我不相信我正确地执行了哈希,否则我没有设置客户端机器来正确接收传入的通知。
这里缺少什么?
运行此命令或类似命令时,我收到以下错误消息:
GNTP/1.0 -ERROR NONE
Error-Code: 400
Error-Description: Invalid key hash
Origin-Machine-Name: SOMETHING
Origin-Software-Name: Growl/Win
Origin-Software-Version: 2.0.9.1
Origin-Platform-Name: Microsoft Windows NT 6.1.7601 Service Pack 1
Origin-Platform-Version: 6.1.7601.65536
X-Message-Daemon: Growl/Win
X-Timestamp: 2/5/2013 11:54:28 AM