=================================================================================== 【系统环境】 RHEL-5.4 =================================================================================== 【支持库】 需要 Glibc2.4 以上的版本;centos5 默认安装的 Glibc2.5,所不需要额外升级; 目前网上的安装文档只有 ubuntu 的,至于redhat、fedora、centos都没有相关安装文档,我在安装的过程中遇到很多库的问题,所以在这里一并给大家进行介绍; =================================================================================== 【”飞信机器人“安装过程】 飞信机器人官网地址:http://www.it-adv.net/ 飞信机器人支持 linux、命令行下的飞信、完全免费(目前为止) 2009版说明及下载:http://bbs.it-adv.net/viewthread.php?tid=155&extra=page%3D1 linux: http://www.it-adv.net/fetion/downng/fetion20090406003-linux.tar.gz win32: http://www.it-adv.net/fetion/downng/fetion20090406003-win32.rar # wget http://www.it-adv.net/fetion/downng/fetion20090406003-linux.tar.gz # tar zxvf fetion20090406003-linux.tar.gz ./install/ ./install/cron.sh ./install/fetion ./install/fxdemo.sql ./install/plugins/ ./install/plugins/inc/ ./install/plugins/inc/config.inc.php ./install/plugins/inc/db.inc.php ./install/plugins/inc/session.inc.php ./install/plugins/inc/utils.inc.php ./install/plugins/plugin_buddy_data.php ./install/plugins/plugin_buddy_data.sh ./install/plugins/plugin_buddy_invite.php ./install/plugins/plugin_buddy_invite.sh ./install/plugins/plugin_handle_contact_request.php ./install/plugins/plugin_handle_contact_request.sh ./install/plugins/plugin_message.php ./install/plugins/plugin_message.sh ./install/plugins/plugin_notify.php ./install/plugins/plugin_notify.sh ./install/plugins/plugin_result.php ./install/plugins/plugin_result.sh ./install/plugins/plugin_timer.php ./install/plugins/plugin_timer.sh ./install/plugins/provider/ ./install/plugins/provider/ArticleView.class.php ./install/plugins/provider/CaiLing.class.php ./install/plugins/provider/CommonPlugin.class.php ./install/plugins/provider/DiscussionCollect.class.php ./install/plugins/provider/DiscussionPost.class.php ./install/plugins/provider/DiscussionShow.class.php ./install/plugins/provider/Game24Point.class.php ./install/plugins/provider/GameKaiXinCiDian.class.php ./install/plugins/provider/GuestBook.class.php ./install/plugins/provider/HelloRobot.class.php ./install/plugins/provider/Help.class.php ./install/plugins/provider/MindTest.class.php ./install/plugins/provider/Participate.class.php ./install/plugins/provider/Vote.class.php ./install/plugins/provider/Weather.Class.php ./install/Readme.txt ./install/robots.dat ./install/sample.conf # ll install total 972 -rwxr-xr-x 1 root root 1570 Apr 6 11:29 cron.sh 机器人监控程序(LINUX) -rwxr-xr-x 1 root root 405265 Apr 6 11:29 fetion linux下主运行程序 -rwxr-xr-x 1 root root 560192 Apr 6 11:29 fxdemo.sql 机器人框架数据库(请导入到数据库) d-w--wx-w- 4 root root 4096 Apr 6 11:29 plugins 机器人框架程序 -rwxr-xr-x 1 root root 2837 Apr 6 11:29 Readme.txt 说明文件 -rwxr-xr-x 1 root root 19 Apr 6 11:29 robots.dat 机器人账号密码(配合cron.sh) -rwxr-xr-x 1 root root 167 Apr 6 11:29 sample.conf 演示配置文件
注:本程序需要 libACE 的支持,库请到 http://www.it-adv.net/ 中下载 linux 下需要的四个文件: # wget http://www.it-adv.net/fetion/downng/library_linux.tar.gz # tar zxvf library_linux.tar.gz libACE-5.6.8.so libACE_SSL-5.6.8.so libcrypto.so.0.9.8 libssl.so.0.9.8
把依赖的库文件和执行程序放到相同的目录 本程序的 linux 版本 基于 UBUNTU 7.10(gutsy) 开发,libc6。 一些老的发行版,如 RH9, RHES4 等可能无法正常运行, 请参照 http://bbs.it-adv.net/viewthread.php?tid=154 如何在不同版本 Linux 上运行 Binary-Only 应用包 解决。 把支持库复制到 /usr/lib/ 目录下: 查看 # ll /usr/lib | grep libcrypto* -rw-r--r-- 1 root root 1735192 Mar 3 2009 libcrypto.a lrwxrwxrwx 1 root root 29 Jul 18 16:58 libcrypto.so -> ../../lib/libcrypto.so.0.9.7a -rwxr-xr-x 1 root root 1350660 Sep 17 22:42 libcrypto.so.0.9.8 # ll /usr/lib | grep libssl* -r--r--r-- 1 root root 112944 Jun 1 12:09 libss.a -rw-r--r-- 1 root root 304144 Mar 3 2009 libssl.a lrwxrwxrwx 1 root root 26 Jul 18 16:58 libssl.so -> ../../lib/libssl.so.0.9.7a -rwxr-xr-x 1 root root 261612 Sep 17 22:42 libssl.so.0.9.8 lrwxrwxrwx 1 root root 15 Aug 22 21:42 libss.so -> /lib/libss.so.2 # cp lib*so* /usr/lib/ # ln -s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4 # ln -s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4 ------------------------------------------------------------------------------------------------------------------------------------ 【飞信2009依赖的其他库】 ld-2.5.so libcom_err.so.2 libpam_misc.so.0 ld-linux.so.2 libcom_err.so.2.1 libpam_misc.so.0.81.2 ld-lsb.so.3 libcrypt-2.5.so libpam.so.0 ld.so.conf libcrypto.so.0.9.8 libpam.so.0.81.5 libACE-5.6.8.so libcrypto.so.0.9.8b libpcre.so.0 libACE_SSL-5.6.8.so libcrypto.so.6 libpcre.so.0.0.1 libc-2.5.so libcrypt.so.1 libproc-3.2.7.so libcap.so libc.so.6 libpthread-2.5.so libcap.so.1 libnss_ldap-2.5.so libpthread.so.0 libcap.so.1.10 libnss_ldap.so.2 libssl.so.0.9.8 libcidn-2.5.so libpamc.so.0 libstdc++.so.6 libcidn.so.1 libpamc.so.0.81.0 libstdc++.so.6.0.8 ------------------------------------------------------------------------------------------------------------------------------------ 设定 lib 库配置文件 # vi /etc/ld.so.conf # 增加一条 /usr/lib/ # 保存退出后,执行 # ldconfig ------------------------------------------------------------------------------------------------------------------------------------ 【实际测试】 linux 下,请使用如下命令: # ./fetion -h Usage: fetion -h -h: help fetion -u mobile -p pwd [-b batchfile] [-EN] [-d] -u: Fetion user account(only supports mobile phone No.) -p: Account password -b: Batch file name -d: Debug on and write logs to [mobile]-debug.log -EN: English
登录飞信默认是中文 utf8 的,如果 linux 系统不支持 utf8 会出现乱码:我使用 english 的方式来登录。 测试帐号:15800000000 密码:qu6zhi (如果密码中含有特殊字符,请使用单引号) # ./fetion --mobile=15800000000 --pwd=qu6zhi --to=136XXXXXXXX --msg-utf8=test4qu6zhi SIP-C/2.0 280 Send SMS OK T: sip:759614688@fetion.com.cn;p=2511 I: 4 Q: 1 M 已经成功收到测试短信息。
LD_LIBRARY_PATH=. ./fetion --sid=6630321 --pwd=mypwd --to=137xxxxxxxx --msg-utf8=测试 LD_LIBRARY_PATH=. ./fetion --config=sample.conf --index=1 --to=137xxxxxxxx --msg-utf8=测试 =================================================================================== -bash: Permission denied =================================================================================== fetion 的目录结构: .\Readme.txt: 本说明文件 .\fetion:主程序 .\sound\*.wav:各种音效文件,您可以用自己喜欢的文件替换 .\plugins\plugin_*: 插件程序,您可以修改插件以达到自己的各性化需求
登录后输入?获得帮助 **************************************************************** 指令 指令说明 list 好友列表: list sms 发送短信: sms 飞信号/手机号/编号 短信内容(换行请用\n代替) chat 在线消息: chat 飞信号/手机号/编号 短信内容(换行请用\n代替) status 在线状态: status online/busy/away/hidden [个性化信息] add 添加好友: add 飞信号/手机号 申请信息 本地呢称 del 删除好友: del 飞信号/手机号/编号 invite 邀请好友: invite 手机号 您的姓名(邀请好友开通飞信) autoaccept 自动接受: autoaccept on/off/status 自动接受加为好友申请 myinfo 修改资料: myinfo nickname/impresa 内容(呢称/心情) help 帮助菜单: help/? exit 退出系统: quit/exit ***************************************************************
脚本测试: 可以使用 fetion 的 -b 参数来实现批处理;
举例如下: # vi p.sh sms 13712312311 “msyqlserver is down” sms 13712312312 “db1 is not running” sms 13712312313 “warning db2 disk3 is full” 保存后执行: ./fetion -u 13713718888 -p 123456 -b p.sh 就是一次给3个 admin 发出报警信息。
还有许多插件的功能,我会在下次实际应用中写出日志和大家一起研究; 在初步接触中,发现可以实现一些交互信息的查询,比如直接向短信机器人发指令得到某台服务器的运行状态等。
【安装过程】 Cacti 的 Threshold 插件下载及安装配置
【配置过程】 1.按照 Cacti 配置 e-mail 报警配置并启用 thold 2.编辑 cacti/plugins/thold/thold-functions.php 在 thold–functions.php 查找 thold_mail($global_alert_address, ”, $subject, $msg, $file_array);行在此行下面加入: exec("echo $subject >>/var/www/html/cacti/plugins/thold/alter.log"); exec("/var/www/html/cacti/plugins/thold/sendsms.sh");
查找 thold_mail($item["notify_extra"], ”, $subject, $msg, $file_array);行在此行下面加入: exec("echo $subject >>/var/www/html/cacti/plugins/thold/alter.log"); #将报警信息记录到alter.log exec("/var/www/html/cacti/plugins/thold/sendsms.sh"); #执行sendsms.sh
备注:本人的thold安装在/var/www/html/cacti/plugins/thold/目录中,如果注释掉thold_mail,只通过短信发送报警。不注释掉thold_mail,会通过email和短信同时发送报警
thold-functions.php 生成的 alter.log 范例如下: 192.168.1.207 - Used Space - G: Label: [hdd_percent] is still above threshold of 85 with 99
编写脚本 sendsms.sh 自动调用飞信机器人发送报警 #!/bin/sh #send sms by fetion #Write by John.Lv if [ ! -e "/var/www/html/cacti/plugins/thold/alert.log" ];then #判断 alter.log 是否存在 echo "Usage:alert.log does not exist" exit fi if [ -n "`cat /var/www/html/cacti/plugins/thold/alert.log`" ]; then #判断 alter.log 是否有报警信息 admin="135xxxxxxxx" #短信接收人,需在你飞信的好友列表中 echo "sms $admin "`cat /var/www/html/cacti/plugins/thold/alert.log` >>/var/www/html/cacti/plugins/thold/sms.txt #发送alter.log 中的报警信息给 admin echo "exit" >> /var/www/html/cacti/plugins/thold/sms.txt #退出飞信 else echo "Usage:no alert" exit fi if [ -n "`cat /var/www/html/cacti/plugins/thold/sms.txt`" ] ; then /var/www/html/cacti/plugins/thold/install/fetion -u 13512345678 -p "123456" -b /var/www/html/cacti/plugins/thold/sms.txt -EN #调用 fetion 发送短信,命令格式和参数说明参见:系统监控:linux命令行-飞信客户端发送免费报警短信 rm -f /var/www/html/cacti/plugins/thold/sms.txt 1>/dev/null 2>&1 rm -f /var/www/html/cacti/plugins/thold/alert.log 1>/dev/null 2>&1 else echo "Usgae:no message to send" exit fi
=================================================================================== 飞信机器人实现命令式互动(以Linux版本为例) 原文地址:http://www.hiadmin.com/%E9%A3%9E%E4%BF%A1%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%AE%9E%E7%8E%B0%E5%91%BD%E4%BB%A4%E5%BC%8F%E4%BA%92%E5%8A%A8%EF%BC%88%E4%BB%A5linux%E7%89%88%E6%9C%AC%E4%B8%BA%E4%BE%8B%EF%BC%89/ 修改 fetion 安装目录下plugins中的plugin_message
#!/bin/bash # $1: fetion_account # $2: message # Plus Description: # When a new message arrival, the system will call this plug-in: buddy=$1 message=$2 admin="135xxxxxxxx" #Only accept instructions sent admin # message A Show disk space if [[ "$message" = "A" && "$buddy" = "$admin" ]] ;then df -h sendback="you send command A" # message B show network connections elif [[ "$message" = "B" && "$buddy" = "$admin" ]];then netstat -an | wc -l sendback="you send command B" # message C run shell script elif [[ "$message" = "C" && "$buddy" = "$admin" ]];then /root/sendMsg/1.sh sendback="you send command C" # message D only send message elif [[ "$message" = "D" && "$buddy" = "$admin" ]];then sendback="you send command D" # other send not accept elif [ "$buddy" = "$admin" ];then sendbac="you send command $message。command does not accept" else sendback="you can not send comman" fi #send message $sendback cmd="sms $buddy $sendback" echo $cmd
保存退出
下面进行测试 测试帐号:13713718888 密码:123456 (如果密码中含有特殊字符,请使用单引号) ./fetion -u 13713718888 -p 123456 -EN
发送信息给135xxxxxxxx sms 135xxxxxxxx “show me the command”
如果135xxxxxxxx回复短信,将自动调用插件plugin_message 如果135xxxxxxxx 回复 A 执行查看磁盘空间的命令并回复message 如果135xxxxxxxx 回复 B 执行统计网络连接数并回复message 如果135xxxxxxxx 回复 C 执行一个shell脚本并回复message 如果135xxxxxxxx 回复 D 只回复message 如果135xxxxxxxx 回复 其它 回复错误指令的信息 如果不是135xxxxxxxx 回复的信息即使是正确指令也不予执行 其中A,B,C,D可以任意指定激活执行命令或者脚本的条件,通过短信回复可以使机器人执行命令,脚本,程序,回复信息等任意操作。
===================================================================================
参考: 飞信机器人官方网站:http://www.it-adv.net/ http://www.hiadmin.com/%E7%B3%BB%E7%BB%9F%E7%9B%91%E6%8E%A7%EF%BC%9Alinux%E5%91%BD%E4%BB%A4%E8%A1%8C-%E9%A3%9E%E4%BF%A1%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E5%85%8D%E8%B4%B9%E6%8A%A5%E8%AD%A6%E7%9F%AD%E4%BF%A1/ http://www.hiadmin.com/cacti%E5%AE%9E%E7%8E%B0%E7%9F%AD%E4%BF%A1%E6%8A%A5%E8%AD%A6/ 给 cacti 插件 thold 加上飞信和msn报警功能:http://www.hiadmin.com/category/workshop/sms/ 谨慎使用:成功将飞信2009(fetion20090318001-linux)移植到rhel4:http://xok.la/2009/03/fetion_2009_to_rhel4_linux4.html Net-SMS-PChome:http://people.debian.org.tw/~chihchun/2008/02/29/net-sms-pchome-updated/ |