通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>聊天通讯>>QQ专栏>>正文 新版上线![旧版]
注:打开慢时请稍等

用QQ管理你的系统^_^

http://www.iyit.net  日期:2006-4-29 22:37:33  来源:  点击:
参加讨论
看过abel大哥的帖子--Shell/Web下发送MSN Message 很受启发
http://bbs.chinaunix.net/forum/24/050711/575520.html
是利用一个基于命令行的msn客户端实现的
在这里,换个角度,同样可以利用Linux下命令行QQ客户端 --- TestQQ来实现对系统的管理
管理员通过自己的QQ与服务端的QQ进行交流,服务器后台用TestQQ+expect+bash 就可以实现很多有趣的功能了

TestQQ下载地址:http://formalin14.org/blog/static.php?page=tq
还要有两个OICQ号码,并互相加为好友(一个放在服务端,一个在管理员端)
关于TestQQ的使用方法在
http://formalin14.org 有说明,
其中在配置文件config.ini 中设置好挂在服务端的QQ号,密码和是否隐身等信息

实现起来可以有两种考虑,
第一种是以shell脚本为主,即让shell脚本在系统后台监控,当满足一些条件时,调用expect脚本来控制TestQQ,向管理员发特定的消息,发完以后,服务端的QQ就退出;
比如,1.sh脚本用于检测系统的登陆人数,当登陆人数大于0时,调用1.exp脚本,将who命令的结果发给管理员的QQ

简单的举例:
代码:

#!/bin/bash
#flie_name 1.sh
if [ `who | wc -l` -gt 0 ];then
./1.exp #同目录下的exp脚本
fi


代码:

#!/usr/bin/expect
#file_name 1.exp
set QQnum 165165984 #管理员端的QQ号
set run /home/wwy/TextQQ/TextQQ.sh #TextQQ的执行文件
#-----------
spawn $run
sleep 1
expect "*"
sleep 3 #如果网速慢,可以加大这些sleep
expect "*"
sleep 3
expect "*"
sleep 3
expect "*"
sleep 5
#-----------
send "/msg $QQnum Ready_at_[exec date +%D--%R]\r"
send "[exec who | xargs]\r" #who命令后用到了xargs,是因为TextQQ不支持换行的原因,在这里 "who | xargs" 可以换成其他脚本或命令,来实现更复杂的功能
expect "*"
expect eof

将1.sh放到计划任务里后,就可以等着来自服务端的消息了 管理员端QQ的聊天纪录举例:
代码:

Server 19:27:18
Ready_at_07/24/05--19:27

Server 19:27:18
root pts/0 Jul 24 18:48 (cncln.online.ln.cn)



第二种考虑是以expect脚本为主,就是将QQ一直挂在服务器后台,一旦满足某些条件,就执行shell脚本,因为expect能控制交互性
这样做就可以实现管理员向服务端QQ发消息,消息的内容为shell命令,系统做出反应,并将执行结果以QQ消息的形势回复给管理员

比如,2.sh脚本用于检查msg.log,这是TextQQ聊天纪录的存放文件,提取其中管理员最新说的话(即命令),执行并返回结果;

例如:
代码:

#!/bin/bash
#file_name 2.sh
msg_log=/home/wwy/TextQQ/msg.log #msg.log文件
file=/home/wwy/TextQQ/my_msg_log.txt #存放聊天纪录的文件
QQnum=165165984 #管理员端的QQ号
cmd=`cat msg.log | grep "\[" | tee -a $file | grep $QQnum | tail -1 | awk -F] '{print $2}'`
#-----------------------
if [ ! "$cmd" ];then
:
elif [ ! "`eval "$cmd" 2%26gt; /dev/null`" ];then
echo 'sorry, your cmd is no display return.'
elif [ : ];then
eval "$cmd" | xargs
fi
#-----------------------
%26gt; $msg_log #清空msg.log,被清空的内容事先保存在my_msg_log.txt 之中



同时,2.exp文件用于将QQ挂在后台,每隔几秒检查一下2.sh是否有结果返回,如果有将结果发给管理员
代码:

#!/usr/bin/expect
set QQnum 165165984 #管理员端的QQ号
set shell_script /home/wwy/TextQQ/2.sh #2.sh文件的位置
set run /home/wwy/TextQQ/TextQQ.sh
#-----------
spawn $run
sleep 1
expect "*"
sleep 3
expect "*"
sleep 3
expect "*"
sleep 3
expect "*"
sleep 5
#-----------
send "/msg $QQnum Ready,waiting_your_cmd,at_[exec date +%R--%D]\r"
expect "*"
sleep 1
while {1} {
set r [exec $shell_script]
if {$r!=""} {
send "$r\r"
expect "*"
}
sleep 3 #内隔3秒检查一次2.sh是否有返回结果
}
expect eof

将2.exp放到后台运行即可,等收到Server的“Ready,waiting_your_cmd...”这个消息后,就可以跟Server“聊命令了” .
代码:

./2.exp %26amp;



聊天纪录举例:
代码:

Server 20:06:27
Ready,waiting_your_cmd,at_20:06--07/24/05

wwy 20:01:18
pwd

Server 20:07:09
/home/wwy/TextQQ

wwy 20:01:36
ls

Server 20:07:19
1.exp 1.sh 2.exp 2.sh classes config.ini err.log jre jre_u lib msg.log my_msg_log.txt readme.txt setenv.bat textqq.bat TextQQ.sh

wwy 20:01:54
uptime

Server 20:07:39
20:07:39 up 6 days, 11:06, 1 user, load average: 0.00, 0.00, 0.00

wwy 20:02:06
touch tmp

Server 20:07:59
sorry, your cmd is no display return.

wwy 20:02:43
ls tmp

Server 20:08:29
tmp

wwy 20:10:24
uname -a

Server 20:16:10
Linux Reinnat 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 i686 i386 GNU/Linux

wwy 20:11:51
iptables -L -n

Server 20:17:40
Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 0.0.0.0/0 0.0.0.0/0 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:135:139 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:135:139 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1433:1434 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:1433:1434 Chain FORWARD (policy ACCEPT) target prot opt source destination DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:135:139 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:135:139 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1433:1434 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:1433:1434 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination

wwy 20:17:56
sar 1 1 | sed -n '4p'

Server 20:23:53
08:23:53 PM all 0.00 0.00 0.00 3.55 96.45


因为在下expect用的太差,而TextQQ本身也有很多局限性,所以有很多不完善的地方,比如只能显示单行和非交互式命令的结果,像more,top这样的命令使用起来会出问题,不过,如果不要回显,一般单行命令都会执行,如rm,iptables等...
关于安全方面,权限就是运行TextQQ时的权限,因为在脚本里有过滤,所以也不用担心别人可以控制服务端的QQ,当然,自己的QQ被盗了除外.

编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:腾讯QQ穿上西装挤入商务通讯与MSN展开争夺战
下一篇:强!用DOS命令查QQ好友IP地址
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
QQ漏洞巧利用强迫他人为你买Q秀 伪造QQ挂机平台盗密码 用木马取得远程电脑上QQ聊天纪录 
封杀QQ消息连发器病毒 flash制作一款漂亮别致的QQ菜单 一波三折搞定QQ木马病毒 
QQ珊瑚虫增强包v4.1最终测试版发布 教你如何填写有说服力的QQ号码申诉资料 珊蝴虫QQ探测隐身的招式用法
教你轻松搞定QQ木马 随心所欲地引用您的QQ秀形象 QQ超实用技巧一则 免费用户也能加密网络
跟我学全手工精心优化QQ设置 关闭QQ炫铃等不常用的QQ功能 忘了QQ密码又想看聊天记录的应对办法
QQ宠物经典360问全解(上) 朋友一个也不少 巧用QQ备注记住好友 图:色情网站借QQ登场 挑逗性美女头像色
只有70K的QQ 还能查隐身! 突破QQ一次只能发送一个文件的限制 QQ聊天消息丢失或延迟的原因分析
QQ密码本地破解 自由驰骋 突破网管封锁聊QQ  千万不能更新的QQ网络硬盘
最新更新 热点排行 推荐新闻
一波三折搞定QQ木马病毒 
QQ珊瑚虫增强包v4.1最终测试版发布
教你如何填写有说服力的QQ号码申诉资料
珊蝴虫QQ探测隐身的招式用法
教你轻松搞定QQ木马
站点FTP参数设置
用tar包配置高可用性vsftp(上)
用tar包配置高可用性vsftp (中)
用tar包配置高可用性vsftp (下)
菜鸟也能架设FTP服务器(一)
快速架设基于宽带的FTP服务器(上)
快速架设基于宽带的FTP服务器(下)
Serv-U:快速构建功能强大FTP服务器(二
Serv-U:快速构建功能强大FTP服务器(三
Serv-U:快速构建功能强大FTP服务器(四
QQ最新版下载 2006 beta2 体验新感受 
珊蝴虫QQ探测隐身的招式用法
QQ收费头像免费使用的方法 
QQ密码本地破解
关闭QQ炫铃等不常用的QQ功能
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
QQ最新版下载 2006 beta2 体验新感受 
优秀公益广告作品欣赏(7)
Office2007简体中文版浮出水面 美图抢
WEB服务器配置全攻略(三)
优秀公益广告作品欣赏(6)
优秀公益广告作品欣赏(4)
优秀公益广告作品欣赏(1)
QQ收费头像免费使用的方法 
比旧版看变化 QQ2006Beta2很不错
QQ最新版下载 2006 beta2 体验新感受 
QQ游戏称霸休闲游戏
硬盘分区消失,解决方法!
传统计算机病毒传播能力破坏性在提高
内存为何有“两面性”
AMD水货盒装CPU识别方法
IP地址资源2012年枯竭 部署IPv6很紧迫
古老问题有新解:世上先有鸡蛋后有鸡
Dreamweaver MX 2004从零开始(1)
利用CSS改善网站可访问性
如何让MM的脸通透可人
msn8.0下载
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息