我需要從bash腳本發送咆哮通知,但是我沒有能力安裝growlnotify命令行工具或可以做類似工作的perl模塊。我可以編寫任意bash腳本,並且在對這臺linux機器上可用的內容進行快速清點後,似乎我已經擁有了netcat。如何使用netcat發送Growl通知?
我可以用這種方式發送咆哮通知嗎?我一直在擺弄這樣的事情:
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
爲什麼沒有人使用printf來做這樣的事情? – dc5553