当前位置: > Linux服务器 > 监控工具 >

Nagios监控全解-手机短信

时间:2014-11-06 12:23来源:linux.it.net.cn 作者:IT

自我监控实现:测试短信发送

正常情况下,没有任何服务器能向手机发送短消息的,要到达这个目的,得花钱购买短信服务(也有些人运用飞信一类的方式来达到这个目的,个人觉得对于运营网站不是太靠谱)。要是在几年前,自己申请短信通道还是有可能的,2005年以后似乎门槛提高了很多。当你付费成功后,短信服务商会给你提供入口及加密关键字;然后我们自己写个脚本就可以发送短信。以下是我的服务器用perl写的脚本:


  1. #!/usr/bin/perl -w  
  2.  
  3. use strict;  
  4.  
  5. use LWP::Simple;  
  6.  
  7. use URI::Escape;  
  8.  
  9. use Digest::MD5;  
  10.  
  11. my ($mobile, $content) = @ARGV;  
  12.  
  13. my $log_control = 1;  
  14.  
  15. my $key = 'Ysdbyhd6T';  
  16.  
  17. my $souce_content = substr($mobile, 0, 8) . substr($mobile, -10, 10) . $key;  
  18.  
  19. my $md5 = Digest::MD5->new;  
  20.  
  21. $md5->add($souce_content);  
  22.  
  23. my $result_conent = uc($md5->hexdigest);  
  24.  
  25. my $url = "http://http.asp.sh.cn/MT.do?Username=sery&Password=([-BVG'0&Mobile=$mobile&Content=$content&Keyword=$result_conent";  
  26.  
  27. my $result = get $url;  
  28.  
  29. if($log_control) {  
  30.  
  31. my $fh;  
  32.  
  33. open($fh, '>> /var/log/sms.log') or die "can't open log: $!";  
  34.  
  35. print $fh join(' ', time, $result, "\n");  
  36.  
  37. close $fh;  
  38.  
  39. }  
  40.  

(以上脚本有宇捷提供)

说明:

1、my $key = 'Ysdbyhd6T'' 短信服务商给的验证关键字。

2、my $url="….." 短信服务商给的用户名、密码以及短信服务商的访问接口(url)全包括在这里了。

我们把这个文件放在目录 /usr/local/bin/ 下面,把它命名为 sms_send.pl ,用命令 chomod +x /usr/local/bin/sms.pl 给与它执行权限。这个脚本在各种各样的unix、linux下都可以正常工作,nagios报警短信发送就是靠它了。如果读者也打算拿这个脚本发送短信的话,只要改一下key值和url值就可以直接使用。

接下来就是验证是否可以发送短信,执行命令行 /usr/local/bin/sms.pl 13300108888 "It is a test" ,回车后数秒钟,你的手机应该能收到带有内容"It is a test"的短信息。为了保证短信服务的可靠性,我做了一个策略:每天下午6点定时给我发一个通知短信;告诉我短信发送是正常的,也是该下班回家了。做法:执行 crontab -e 然后输入行


  1. 00 18 * * * /usr/local/bin/sms.pl 13300108888 "It is Ok" 。 


(责任编辑:IT)
------分隔线----------------------------