原文請參閱
http://dominic16y.world.edoors.com/CGNWR3kC9euM
為了便於監控 Server 的狀態,我需要 Server 在更換IP時,能自動透過 msn 發個訊息給我 server 的當前IP。 msn 機器人已經有人寫好了,可在這裡免費申請使用,現在需要的就是我寫一個小程式來呼叫 msn 機器人來幫我發送訊息。
首先參照這個頁面,是 msn 機器人的運作流程,簡單提一下
0.當你申請過後,他會寄給你一個你專屬的 msn 機器人 (就是一個網址啦),和操作這個機器人的帳號密碼。
1.取得 SPID 值,也就是 session ,有效期為六小時。
2.加聯絡人,你和機器人必需互加為聯絡人,才能發訊。
3.發送訊息,發訊時要帶有效的 spid 值才能發送。
以上幾點呢,都還不需要寫程式,但你必需得先用網頁的方式測試ok了,能正常收發訊息時,才接著下一步。也就是說把瀏覽器打開,貼上正確的網址,就能測試了。
開始寫 shell script
以下所寫的程式適用於 debian 4.0 和 5.0 的環境
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 "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 來通知你。