作者 主題: MSN Alert Testing  (閱讀 49543 次)

0 會員 與 1 訪客 正在閱讀本文。

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
MSN Alert Testing
« 於: 2005-06-13 16:41 »
http://211.72.210.251/msn/msn.php

或以
wget 'http://211.72.210.251/msn/msn.php?&txt1=你要送的MSN連絡人&msg=傳送的訊息第一行\n第二行&smt1=send'

還請有閒的人幫我測看看或提供意見

感謝

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8831
    • 檢視個人資料
    • http://www.24online.cjb.net
MSN Alert Testing
« 回覆 #1 於: 2005-06-13 16:45 »
使用網頁(FireFox), 可以發送.

缺點是因為我有日文訊息, 在按下send之後變成亂碼. 送出來的訊息是正常的.
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
MSN Alert Testing
« 回覆 #2 於: 2005-06-13 16:48 »
引述: "日京三子"
使用網頁(FireFox), 可以發送.
缺點是因為我有日文訊息, 在按下send之後變成亂碼. 送出來的訊息是正常的.

三子兄~感謝義助呀

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8831
    • 檢視個人資料
    • http://www.24online.cjb.net
MSN Alert Testing
« 回覆 #3 於: 2005-06-13 16:57 »
引述: "abelyang"
三子兄~感謝義助呀
不用客氣, 把測試費用新台幣五千萬匯入我在蘇黎世銀行帳號就好 ^O^   :lol:
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

耗呆

  • 憂鬱的高中生
  • ***
  • 文章數: 112
    • 檢視個人資料
MSN Alert Testing
« 回覆 #4 於: 2005-06-13 20:13 »
代碼: [選擇]
abel@twnic.net.tw 說:
Now: Mon Jun 13 20:13:01 CST 2005
abel@twnic.net.tw 說:
MAIL
abel@twnic.net.tw 說:
123234123

怎麼一說三句話........= =a
嚇我一跳

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
MSN Alert Testing
« 回覆 #5 於: 2005-06-14 09:37 »
引述: "耗呆"
代碼: [選擇]
abel@twnic.net.tw 說:
Now: Mon Jun 13 20:13:01 CST 2005
abel@twnic.net.tw 說:
MAIL
abel@twnic.net.tw 說:
123234123

怎麼一說三句話........= =a
嚇我一跳

是的~目前我讓他送
DATE
CONCACT
MESSAGE

這個東西我目前主要都拿來和 mrtg/rrdtool 合用

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
MSN Alert Testing
« 回覆 #6 於: 2005-07-11 14:12 »
介紹一下我的做法,有心人可自己研究哦


MSN 通常是用來交談的, Liunx 下最有名的 MSN Client 當屬 gaim,
不過因為它是 GUI 的環境,要以 shell 來應用實在不容易
(如果你能用 shell 控制 mouse 點在那裏就可以做到,但你能嗎 ? ()

1. 安裝 tmsnc (http://tmsnc.sourceforge.net/download.html)
我的例子是用 0.1.1 版本,你可以找別的版本自己開發,或參考我的例子也可以
代碼: [選擇]

$>wget http://unc.dl.sourceforge.net/sourceforge/tmsnc/tmsnc-0.1.1.tar.gz
$>tar -zxvf tmsnc-0.1.1.tar.gz
$>cd tmsnc-0.1.1
# 看一下 Makefile , 裏面的 openssl 路徑是否符合你的環境
$>make
$>make install
$>tmsnc   (啟動的樣子)
      .........
    .'------.' |
   | .-----. | |
   | |TMSNC| | |;.
   |*`-----'.|.' `;
   `---------' .;'
  .''''////////;'
 / ######### /;/    The
/ ######### //   textbased
`-----------'   alternative!

Login: abel@twnic.net.tw
Your login-address is abel@twnic.net.tw
Enter password:

2.TMSNC 的指令說明
代碼: [選擇]

# tmsnc 的 command 說明 (Readme),如果你要完善你的功能,就要詳讀任何的說明
Availible commands in TMSNC are:
 * help                      show a list of availible commands
 * clear                     clear the screen
 * nick <name>               set your nickname to <name>
 * status <string>           where <string> is online, busy, brb,
 *                            away, phone, lunch or hidden
 * quit                      logout from server and quit TMSNC
 * add <address>             add <address> to the contact-list
 * block <address>           prevent <address> from obtaining your status
 * unblock <address>         reverse the block
 * remove <address>          remove <address> from contact-list
 * window <n> or TAB         change current window to <n>
 * window close or F7        close current window and conversation
 * chat <address> or Enter   start a new conversation with <address>

由以上我們可以知道, tmsnc 我們巳經裝好了,所以就可以來做 shell 發送 msn 的工作了!
用 shell 來發,最好的工具是 expect , 這個工具的說明,你可以在 man page 中找到詳細
解說

3.
3.1
範例一(簡單版):
代碼: [選擇]

#!/usr/bin/expect
# filename=send.exp
log_file ./exp.log
spawn tmsnc -l abel@twnic.net.tw
expect "Enter password:"
send "你的密碼\r"
expect -re ".* can't control me*"
sleep 5

send "/chat [lindex $argv 0]\n"
expect -re ".*!.*"
sleep 1
send "Now: [exec date]\n"
sleep 1
send "[lindex $argv 1]\n"
sleep 3
send "/window close\r"
send "/quit\r"


用法:
代碼: [選擇]

#請注意, MSN訊息需為 UTF-8 encoding
$>./send.exp MSN連絡人 MSN訊息


3.1
範例二(稍複雜版):

代碼: [選擇]

#!/usr/bin/expect
# log file , for debug
log_file ./exp.log
#
set workdir "/www/htdocs/html/msn/msg"
# -l 指定 MSN contact, 你可以 tmsnc -h 來了解參數
spawn tmsnc -l abel@twnic.net.tw
sleep 1
# 出
expect "Enter password:"
send "你的密碼\r"
sleep 1
# 出
expect -re ".* can't control me*"
sleep 3
# 無限迴圈,讀取訊息檔
while {1} {
        sleep 1
#取得 訊息檔中第一行,我個人的定義是 MSN addr
        set msn_addr [ exec cat $workdir/msg.utf8 |  head -1 ]
#如果沒有第一行,則回到 loop
        if {$msn_addr!=""} {
#對誰發送說明,指令請看 Readme
                send "/chat $msn_addr\n"
                sleep 1
#出
                expect -re ".*!.*"
#發送
                send "Now: [exec date ]\n"
                sleep 1
#發送該檔案的第二行起的訊息,請注意,訊息需為 UTF-8 的 encoding ,您可使用 iconv 來轉換
                send "[exec cat $workdir/msg.utf8 | sed -e 1d ] \n"
                sleep 1
#關閉對話
                send "/window close\n"
                sleep 1
#清除訊息檔
                set cmd [exec echo -n "" > $workdir/msg.utf8]
        }
}
send "/quit\r"


現在,我們可以來寫一個網頁程式,來做上例中的 msg.utf8 的處理
代碼: [選擇]

<?php
while &#40; list&#40;$key,$val&#41;=each&#40;$_GET&#41;&#41;
        
$$key=$val;
if &
#40;isset&#40;$smt1&#41;&#41; &#123;
        
$msn=iconv&#40;"BIG5","UTF-8",$msg&#41;;
        
$fp=fopen&#40;"/www/htdocs/html/msn/msg/msg.utf8",'w'&#41;;
        
fwrite&#40;$fp,"$txt1\n$msn"&#41;;
        
fflush&#40;$fp&#41;;
        
fclose&#40;$fp&#41;;
        
system&#40;"cat ./msg/msg.utf8"&#41;;
        
echo "<BR>\n";
&
#125;
?>

<html><body>您要
測試完後再把我刪了即可, 非常感謝!<BR>
<form method=GET>
我要傳送給 msn:<input type=text value="<?php echo $txt1;?>" name=txt1>
<input type=text name=msg value="<?php echo $msg;?>" maxlength=255>訊息
<input type=submit value=send name=smt1>
</form> </body></html>


嗯... Good, 如此,你就可以用
代碼: [選擇]

$>wget http://你的url/msn.php?smt1=send&txt1=MSN連絡人&msg=MSN訊息

來發放訊息了,實際的例子,您可參考
http://211.72.210.251/msn/msn.php

5.
實用範例(mrtg)
代碼: [選擇]

WorkDir: /www/htdocs/html/mrtg
Refresh: 300
Interval: 5
Language: Big5
Options[_]: growright, noinfo, gauge
#LogFormat: rrdtool
#PathAdd: /usr/bin/
#LibAdd: /usr/lib/perl/

#-----------------------Target Begin------------------------------------
Target[localhost-mysql]:`check_mysqlsh localhost `
MaxBytes1[localhost-mysql]:200
MaxBytes2[localhost-mysql]: 100
Title[localhost-mysql]: 211.72.210.251 MYSQL Threads/Qps Stat
Legend1[localhost-mysql]: 行
Legend2[localhost-mysql]: 秒查詢量
LegendI[localhost-mysql]: Threads
LegendO[localhost-mysql]: Qps
YLegend[localhost-mysql]: Threads/Qps
PageTop[localhost-mysql]: <h1>211.72.210.251 MYSQL Threads/Qps Stat</h1>

ThreshMaxI[procmail-mysql]: 30
ThreshMinI[procmail-mysql]: 1
ThreshMaxO[procmail-mysql]: 50
ThreshProgI[procmail-mysql]:/www/htdocs/html/mrtg/alert/mysql_alert.sh
ThreshProgO[procmail-mysql]:/www/htdocs/html/mrtg/alert/mysql_alert.sh

以上的例子是我在監控 mysql 的行程式及查詢量,若行程數超過 30 個,或<=1 個時,或是mysql 每秒
查詢超過 50 個 query, 啟動 mysql_alrtt.sh 程式,而 mysql_alert.sh 程式如下


代碼: [選擇]

#!/bin/sh
# mrtg 會傳送三個參數給 ProgI/ProgO , 以利 alert
# 分於為 Target name/所
target=$1
alert_val=$2
curr_val=$3
wget "http://211.72.210.251/msn/msn.php?smt1=&txt1=MSN連絡人&msg=MRTG 所監測的\
$target,發生問題,您所
\n請您參考 http://你的網頁/$target.html" -O /tmp/msn.log


4. 結語
我個人目前系統的 Alert 都是透過 MSN 來做即時發放的,你可以寫一個檢查系統的程式, check 到有
alert 狀況時,就可以用 wget .... 來送出訊息給很多相關人員,只要您想送什麼,就可以送什麼,透過
shell 放送,更增您的方便性


註:如果您充份了解 expect 的就字串處理,可以反過來,讓 tmsnc + expect 幫您做事哦, 例如和他交談
"exec ls -la /tmp" , 這個 exec 是 prefix, 你只要能拆解出 "ls -la /tmp", 就可以在 msn 中看
到 /tmp 下的檔案列表了 ! 這絕對是真的, 看你的能力囉

barista

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
MSN Alert Testing
« 回覆 #7 於: 2005-07-11 22:24 »
請教一下abel大 (先感謝您的大作)
我改寫了 tmsnc+expect
手動run都OK..(就是./某expect檔案 可以跑,寫在php裡也ok)
但是我把他放在shell 用crontab自動執行就跑不出來了
我check過都是用絕對路徑,不知道我遺漏了哪個地方?
請abel大指導一下 謝謝

飄然似雪

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
MSN Alert Testing
« 回覆 #8 於: 2005-07-11 22:27 »
Perl不是有MSN的相關Module可以用嗎?
Net::Msmgr
http://search.cpan.org/~slstat/Net-Msmgr-0.16/Msmgr.pm

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
MSN Alert Testing
« 回覆 #9 於: 2005-07-12 00:27 »
引述: "barista"
請教一下abel大 (先感謝您的大作)
我改寫了 tmsnc+expect
手動run都OK..(就是./某expect檔案 可以跑,寫在php裡也ok)
但是我把他放在shell 用crontab自動執行就跑不出來了
我check過都是用絕對路徑,不知道我遺漏了哪個地方?
請abel大指導一下 謝謝

你得去看一下 cron 的 mail , 裏面應該會有寫,
因為我不知道你怎麼做的

飄然似雪兄的話沒有錯,不過 perl 這種程式對有些人來說不好學
直覺的 expect 是相對來說較好用的工具
當然,對 perl 熟的人用起來而言, perl 的彈性是 expect 比不上的

飄然似雪

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
MSN Alert Testing
« 回覆 #10 於: 2005-07-12 01:10 »
引述: "abelyang"
引述: "barista"
請教一下abel大 (先感謝您的大作)
我改寫了 tmsnc+expect
手動run都OK..(就是./某expect檔案 可以跑,寫在php裡也ok)
但是我把他放在shell 用crontab自動執行就跑不出來了
我check過都是用絕對路徑,不知道我遺漏了哪個地方?
請abel大指導一下 謝謝

你得去看一下 cron 的 mail , 裏面應該會有寫,
因為我不知道你怎麼做的

飄然似雪兄的話沒有錯,不過 perl 這種程式對有些人來說不好學
直覺的 expect 是相對來說較好用的工具
當然,對 perl 熟的人用起來而言, perl 的彈性是 expect 比不上的


先謝謝Abel兄提供這樣的教學,
我剛看到時,
就想說應該可以將expect 和 php處理UTF-8部分全部用Perl來完成
(Sorry,中Perl的毒太深)

可以使用Expect和Unicode::Map8或Perl 5.8.7內建的utf8相關模組
來解決掉,這樣應該一支shell script就可以解決了...  8)  


說來慚愧,
CPAN上面的那個Net::Msmgr模組我看了那麼多次,
還是沒搞懂他怎麼用..  :oops:

飄然似雪

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
MSN Alert Testing
« 回覆 #11 於: 2005-08-02 20:42 »
引述: "abelyang"
引述: "barista"
請教一下abel大 (先感謝您的大作)
我改寫了 tmsnc+expect
手動run都OK..(就是./某expect檔案 可以跑,寫在php裡也ok)
但是我把他放在shell 用crontab自動執行就跑不出來了
我check過都是用絕對路徑,不知道我遺漏了哪個地方?
請abel大指導一下 謝謝

你得去看一下 cron 的 mail , 裏面應該會有寫,
因為我不知道你怎麼做的

飄然似雪兄的話沒有錯,不過 perl 這種程式對有些人來說不好學
直覺的 expect 是相對來說較好用的工具
當然,對 perl 熟的人用起來而言, perl 的彈性是 expect 比不上的


用Perl改寫abel兄的code  
:)

代碼: [選擇]

#!/usr/bin/perl

use Expect;
use Text::Iconv;

my $Account_Sender      = '傳訊者MSN';
my $Password_Sender     = '你的密碼';
my $Account_Receive     = '收訊者MSN';
my $SendMessage       = '這是系統測試!';
my $command             = "tmsnc -l $Account_Sender";
my $converter = Text::Iconv->new("big5", "utf-8");
   $SendMessage  = $converter->convert($SendMessage);


my $exp = Expect->spawn($command) or die "Cannot spawn $command: $!\n";
   $exp->expect(10,"Enter password: " => sub { $exp->send("$Password_Sender\r");});
   $exp->expect(10,".* can't control me");
   sleep 1;
   $exp->send("/chat $Account_Receive\n");
   $exp->expect(10,".*!.*");

   sleep 1;
   $exp->send("Now\n");
   sleep 1;
   $exp->send("$SendMessage\n");
   sleep 3;
   $exp->send("/window close\r");
   $exp->send("/quit\r");

pank

  • 懷疑的國中生
  • **
  • 文章數: 84
    • 檢視個人資料
    • http://pank.org
Re: MSN Alert Testing
« 回覆 #12 於: 2005-08-30 00:15 »
引述: "abelyang"
http://211.72.210.251/msn/msn.php

或以
wget 'http://211.72.210.251/msn/msn.php?&txt1=你要送的MSN連絡人&msg=傳送的訊息第一行\n第二行&smt1=send'

還請有閒的人幫我測看看或提供意見

感謝


參考 abelyang 兄的做法, 也做了一個類似的, 用 tmsnc 0.1.5 版, 0.2.x 版變滿多的, 不太會用
加入 msn@pank.org
http://pank.org/msn/
歡迎使用
ttp://pank.org

different

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
MSN Alert Testing
« 回覆 #13 於: 2005-09-01 00:11 »
以上的東西在0.2版是無法跑的.因為指令方法有誤差..
光一開始password的地方就要改成Password:
在來的地方..小弟就無解了..
要從何下手呀..?

飄然似雪

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
Re: MSN Alert Testing
« 回覆 #14 於: 2005-09-11 17:31 »
引述: "pank"
引述: "abelyang"
http://211.72.210.251/msn/msn.php

或以
wget 'http://211.72.210.251/msn/msn.php?&txt1=你要送的MSN連絡人&msg=傳送的訊息第一行\n第二行&smt1=send'

還請有閒的人幫我測看看或提供意見

感謝


參考 abelyang 兄的做法, 也做了一個類似的, 用 tmsnc 0.1.5 版, 0.2.x 版變滿多的, 不太會用
加入 msn@pank.org
http://pank.org/msn/
歡迎使用


最近無聊把tmsnc 0.2.4做了port,送了send-pr現在等commit進ports

0.2.4的畫面比0.1.x好看多了.. :P

haocheng

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
    • http://www.3ccity.idv.tw
請教一下 abelyang 大哥
« 回覆 #15 於: 2005-10-01 23:44 »
先感謝您分享這篇文章, MSN 的 Alert 實在對我在工作上有幫助,

目前在安裝上遇到了一些問題,想請教您:

我的環境如下:
OS -> RH 9.0
tmsnc -> 0.1.1
expect -> 5.38.0-88

1. 用您簡單版的語法測試  

./send1.exp MSN連絡人 MSN訊息 => ok
send1.exp
代碼: [選擇]

#!/usr/bin/expect
log_file ./exp.log
spawn tmsnc -l

haocheng@orra.com.tw
expect "Enter passwrod:"
send "XXXXXXX\r"
expect -re ".* cant control

me*"
sleep 5
send "/chat [lindex $argv 0]

\n"
expect -re ".*!.*"
sleep 1
send "Now: [exec date]\n"
sleep 1
send "[lindex $argv 1]\n"
sleep 3
send "/window close\r"
send "/quit\r"


2. 但是用了複雜語法及 PHP 網頁時卻有問題產生

./send.exp MSN連絡人 MSN訊息=> 沒回應畫面停留在如下



使用 wget index.php 時
#wget http://203.79.206.154/msn/index.php?smt1=send&txt1=yuhaocheng@hotmail.com&msg=MSN訊息



需要再一下 ENTER



但很奇怪的是,如果我先使用./send.exp MSN連絡人 MSN訊息 讓SHELL停留在
tmsnc 畫面時,正常您寫的語法應該是結束掉tmsnc才對(send "/quit\r"),但
卻沒有結束,就像第一張圖,而這時,我用 IE 開 http://203.79.206.154/msn/
時,是可以傳送訊息的,但如果關閉這個 tmsnc 的畫面時,用
#wget http://203.79.206.154/msn/index.php?smt1=send&txt1=yuhaocheng@hotmail.com&msg=MSN訊息
及用 web 的方式..卻都沒反應 ! 不知..abelyang 大哥..有沒有什麼好的建議及方向,可以給我指點

迷津,我反覆研究及思考並修改都沒用...

另外,想請教一下您:

關於 mrtg 的 msn alert 我是想做以下的 alert 通知設備的好壞及效能...

目前我己做好了.. mrtg ping 設備的回應值...及 lose 率..如下圖:




我的 mrtg alert 做法如下:
代碼: [選擇]
 
### RRT(kajukaju.net --> mfeed.jp) ###
Target[mfeed_ping]: `/usr/bin/mrtg-ping-probe 168.95.1.1`
Options[mfeed_ping]:     gauge
MaxBytes[mfeed_ping]:    180
AbsMax[mfeed_ping]:      10000
WithPeak[mfeed_ping]:    dwmy
YLegend[mfeed_ping]:     Round Trip Time
ShortLegend[mfeed_ping]: ms
LegendI[mfeed_ping]:     Max:
LegendO[mfeed_ping]:     Min:
Legend1[mfeed_ping]:     Maximum Round Trip Time in ms
Legend2[mfeed_ping]:     Minimum Round Trip Time in ms
Legend3[mfeed_ping]:     Maximal 5 Minute Maximum Round Trip Time in ms
Legend4[mfeed_ping]:     Maximal 5 Minute Minimum Round Trip Time in ms
ThreshMaxI[mfeed_ping]: 20
ThreshMinI[mfeed_ping]: 1
ThreshMaxO[mfeed_ping]: 60
ThreshProgI[mfeed_ping]:/var/www/html/msn/ping_alert.sh
ThreshProgO[mfeed_ping]:/var/www/html/msn/ping_alert.sh
Title[mfeed_ping]:       Round Trip Time
 


不知這樣的做法正不正確,凡是 ping 的回應值最小低於 20 時及最大超過  60 時
,就執行 ping_alert.sh 的 MSN 通知,這樣的Thresh 做法正確嗎?以下是我的
ping_alert.sh 但這個 shell script 手動 RUN 時正常,# env LANG=C mrtg hinet.cfg  

,PING 回應超過也會通知,但放入 cron 中後,卻沒有用,以下是我 cron 的資料:
Oct  1 23:25:00 localhost CROND[26424]: (root) CMD (env LANG=C mrtg /var/www/html/mrtg/hinet/hinet.cfg)

代碼: [選擇]

#!/bin/sh
/var/www/html/msn/send1.exp yuhaocheng@hotmail.com  wefw


但有一個問題,如果是多人要通知時,這個 shell script 要怎麼加,不好意思,小
弟對 shell 不是很了解,但目前在努力K書中,還望大大教導!關於封包有 loss 時,要做通知,

mrtg.cfg 我研究很久,實在不了解應該怎麼修改!
代碼: [選擇]

### packet loss ###
Target[mfeed.loss]: `/usr/bin/mrtg-ping-probe -t 42 -p loss/loss 168.95.1.1`
MaxBytes[mfeed.loss]: 180
AbsMax[mfeed.loss]: 10000
WithPeak[mfeed.loss]: dwmy
Options[mfeed.loss]: gauge
YLegend[mfeed.loss]: % Packet Loss
ShortLegend[mfeed.loss]: %
Legend1[mfeed.loss]: % Packet Loss
Legend2[mfeed.loss]: % Packet Loss
Legend3[mfeed.loss]: Maximal 5 Minute % Packet Loss
Legend4[mfeed.loss]: Maximal 5 Minute % Packet Loss
LegendI[mfeed.loss]: &nbsp;% loss:
LegendO[mfeed.loss]: &nbsp;% loss:
Title[mfeed.loss]: Packet Loss Analysis
PageTop[mfeed.loss]: <H1>Packet Loss Analysis</H1>
[color=red]
ThreshMaxI[mfeed_ping]:
ThreshMinI[mfeed_ping]:
ThreshMaxO[mfeed_ping]:
[color=red]
ThreshProgI[mfeed_ping]:/var/www/html/msn/ping_lose_alert.sh
ThreshProgO[mfeed_ping]:/var/www/html/msn/ping_lose_alert.sh


最後,希望您可以抽空看看,麻煩之處,請您多多包涵,感謝您,從您身上真是
學到了不少 !!

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
MSN Alert Testing
« 回覆 #16 於: 2005-10-19 10:43 »
引用

wget http://203.79.206.154/msn/index.php?smt1=send&txt1=yuhaocheng@hotmail.com&msg=MSN訊息

這個部份的 url 要用引號包起來,不然會有問題

mrtg 的問題你先確定是否是 wget 所引起的

至於 Threshold check , 我的做法是
代碼: [選擇]

ThreshDir: /www/htdocs/mrtg/alert/
ThreshMaxI[sg-apol-mgcd]: 40
ThreshProgI[sg-apol-mgcd]:/www/htdocs/mrtg/alert/mail.sh

有沒有 ThreshDir 我不確定是不是會有問題

至於多人傳訊,這個部份
代碼: [選擇]

#!/bin/sh
# mrtg 會傳送三個參數給 ProgI/ProgO , 以利 alert
# 分於為 Target name/所
target=$1
alert_val=$2
curr_val=$3

# user1 2 3 即是要通知的人
for contact_address in user1 user2 user3 user4
do
wget "http://211.72.210.251/msn/msn.php?smt1=&txt1=$contact_address&msg=MRTG 所監測的\
$target,發生問題,
\n請您參考 http://你的網頁/$target.html" -O /tmp/msn.log
# sleep 3 要等3秒,可以
sleep 3
done

agg

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
MSN Alert Testing
« 回覆 #17 於: 2005-11-30 00:31 »
引述: "barista"
請教一下abel大 (先感謝您的大作)
我改寫了 tmsnc+expect
手動run都OK..(就是./某expect檔案 可以跑,寫在php裡也ok)
但是我把他放在shell 用crontab自動執行就跑不出來了
我check過都是用絕對路徑,不知道我遺漏了哪個地方?
請abel大指導一下 謝謝


請問有沒有那位大大能在crontab裡執行?
小弟用手動執行也都可以
但放進crontab裡也是不行

myfreeke

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
回覆: MSN Alert Testing
« 回覆 #18 於: 2008-07-26 10:25 »
我在nagios 中使用PH类sendmsg来发送MSN报警消息给 技术支持工程师的MSN!

http://user.qzone.qq.com/56802890/blog/1216772013

其实不使用nagios的监控系统,也可以使用脚本监控某个程序进程,然后出错时调用sendmsg发报警消息!