...
為了便於監控 Server 的狀態,我需要 Server 在更換IP時,能自動透過 msn 發個訊息給我 server 的當前IP。 msn 機器人已經有人寫好了,可在這裡免費申請使用,現在需要的就是我寫一個小程式來呼叫 msn 機器人來幫我發送訊息。
首先參照這個頁面,是 msn 機器人的運作流程,簡單提一下
(0).當你申請過後,他會寄給你一個你專屬的 msn 機器人 (就是一個網址啦),和操作這個機器人的帳號密碼。
例如這樣 http://59.120.234.84:8082/msnSDK/msn_cgi-win32
(1).取得 SPID 值,也就是 session ,有效期為六小時。
http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=帳號&PASSWD=密碼
1 rSkrRckaS0Idaefe
↑這個就是 session也就是 SPID,時效六小時
(2).加聯絡人,你和機器人必需互加為聯絡人,才能發訊。
http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=REGISTER&UIDS=MSN帳號&SESSION=剛取得的SPID
(3).發送訊息,發訊時要帶有效的 SPID 值才能發送。
http://59.120.234.84:8082/msnSDK/msn_cgi-win32?UIDS=MSN帳號&MSG=這是中文發送訊息測試&flags=0&FUNC=SENDMSG&ENCODING=UTF-8&SESSION=剛取得的SPID
以上幾點呢,都還不需要寫程式,但你必需得先用網頁的方式測試ok了,能正常收發訊息時,才接著下一步。也就是說把瀏覽器打開,貼上正確的網址,就能測試了。
開始寫 shell script
以下所寫的程式適用於 debian 4.0 , 5.0 ,ubuntu 9.04的環境
vim /home/backup/msn_send.sh
| #!/bin/bash # msn 機器人發訊 #1.取得 SPID 值 wget -q -O /tmp/session.txt -q 'http://59.120.234.84:8082/msnSDK/msn_cgi-win32?FUNC=GETSPID&USERID=帳號&PASSWD=密碼' #2.設定 session 變數,此變數的有效期為六小時 session=`cat /tmp/session.txt|awk '{printf $2 "\n"}'` #3.設定date與IP 變數 IP1=`/sbin/ifconfig ppp0 | grep "inet" | cut -c 21-38 |awk '{ print $1 }'` date1=`date +%Y/%m/%d,%T` #4.送訊息給 wget -q --delete-after "http://59.120.234.84:8082/msnSDK/msn_cgi-win32?UIDS=你的MSN帳號&MSG=$date1 IP更換:$IP1&flags=0&FUNC=SENDMSG&ENCODING=UTF-8&SESSION=$session" |
以上的程式內容,需注意紅字的部份修改成你的帳密
再執行以下指令安裝
chmod 755 /home/backup/msn_send.sh
ln -s /home/backup/msn_send.sh /etc/ppp/ip-up.d/msn-send
這樣,一但 server 換IP了,它就會自動的透過 msn 來通知你。
No Comments. I want to comment on it