Linux
Zenoss SMS 缺少文本
我已經設置了一個Xenserver 來託管一個帶有Zenoss Core 4.2.4的**Debian VM。Xenserver 有一個Siemens T35 GSM 調製解調器連接到其串列埠 COM1。我使用了 ser2net + 一些 Xenserver 配置來讓它工作。(COM1 綁定、SELinux、…)我創建了一個可以輕鬆發送 SMS 消息的 shell 腳本。
我創建了一個觸發器+通知,除了消息為空之外,一切都執行良好!!!
這是腳本:
#!/usr/bin/expect # - VAR set ctrlz \032 set xt \135 set timeout 15 set host [lindex $argv 0] set port [lindex $argv 1] set number [lindex $argv 2] set message [lindex $argv 3] # - LOG log_file -a sms.log; send_log "$host $port $number:$message" # - CONNECT spawn telnet $host $port sleep 1 # - SEND send AT+CMGF=1\r; expect "OK" send AT+CMGS="$number"\r; expect ">" send "$message$ctrlz"; expect "OK" # - END
這是 Zenoss 頁面命令:
$ZENHOME/bin/sms.sh 10.10.0.52 3333 $RECIPIENT
這在Linux中工作如下:
./sms.sh 10.10.0.52 3333 +32486000000 message
我只是無法在 SMS 消息中收到來自Zenoss 的消息….我需要完成最後一步才能使其完全正常工作!
如果我嘗試從 Zenoss 發送測試消息,它也會到達,但沒有文本……
感謝您的時間!
它的工作,
我查看了
/usr/local/zenoss/Products/ZenUtils/Utils.py
文件,發現 Zenoss 將消息文本發送到,stdin
所以我只需要讀取期望腳本中的標準輸入來獲取消息。這是新的工作腳本:(請注意,我遺漏了主機和埠參數)
#!/usr/bin/expect # - VAR set ctrlz \032 set xt \135 set timeout 15 set number [lindex $argv 0] set message [gets stdin] # - LOG log_file -a sms.log; send_log "$number:$message" # - CONNECT spawn telnet 10.10.0.52 3333 sleep 1 # - SEND send AT+CMGF=1\r; expect "OK" send AT+CMGS="$number"\r; expect ">" send "$message$ctrlz"; expect "OK" # - END
希望這會幫助任何人!
根據我的理解,問題似乎是 Zenoss 將實際消息發送到腳本 STDIN 輸入,但您的腳本期望它作為命令行參數。您必須修改期望腳本,使其從 STDIN 而不是
$argv 3
. 之後,您的測試腳本應該像這樣工作:echo "Message" | ./sms.sh 10.10.0.52 3333 +32486000000
我真的不知道期望,所以我無法幫助實際的腳本。