我的雲端生活網 - Life+

Thursday, November 12, 2009

使用shell script 操作 msn機器人

這一篇文章是使用免費imoo msn機器人套件的使用者提供,msn機器人本
身可以在 linux/win32 下運作,可廣泛支援大多數語言 (asp/asp.net/c#/java/perl/ruby/python/php/vb6/vb.net...)當然也
能使用shell script配合wget 或curl 來撰寫相關應用

以下原文出自 http://dominic16y.world.edoors.com/CGNWR3kC9euM

使用者將imoo msn機器人,應用於系統監控的實例

---

為了便於監控 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 來通知你。

No comments:

Blog Archive