免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 47529 | 回复: 61
打印 上一主题 下一主题

【实践1】系统管理工具[cmserver-cmclient]第一版--请测试 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-17 10:05 |只看该作者 |倒序浏览
本帖最后由 duanjigang 于 2011-03-30 18:03 编辑

谢谢大家多多测试,提出意见和改进建议!
cme.tar1.zip (1.77 MB, 下载次数: 252)
2011-03-30 补充了客户端程序的功能说明,作为扩展。了解详细信息,参加32-37楼
2011-03-22晚上10点补充

前传:
呵呵,之前就做过一个并发访问多个主机执行命令的工具,叫cme_scanner,是完全开源的,地址见这里:
http://bbs.chinaunix.net/thread-2033561-1-1.html
使用C的pthread并发调用expect自动登录机器执行任务,后来想了想,每个线程在执行每台机器的命令时,又相当于为每个主机启动了一个进程,
这样性能估计不太好,而且超时机制不太好做,expect脚本调用ssh命令,失败的错误原因也不太好分析(或者说我比较懒惰不想分析错误)。
之所以做这个工具,首先是工作需要,另外是想对cme_scanner做一个改进,不想在脚本中写上登录密码,而且多线程调用脚本文件,自己觉得很土。便想搞出来一个“纯粹”的并发访问工具,而且安全一点。
因此,cmeserver和cmeclient诞生了。



帖子前言:
讨论的帖子在此处:
http://bbs.chinaunix.net/thread-1862591-1-1.html
经过几天修改,终成第一版。由于该工具目前为公司内部用,因此还不宜开源,我后面跟领导请示开源下。
由于CU的附件不支持tar.gz格式的,因此把cme.tar.gz改名为tar1.gz1,然后zip打包,解压缩zip后,改名为tar.gz然后使用tar解压缩。

功能说明:类似于ssh的一个工具,一个服务程序和一个客户端命令。不同于ssh之处在于不需要登录,直接通过自己打通的socket通道传输数据和小型文件(二进制方式)。

执行命令:支持单个主机 "-h IP地址"或者 "-f IP地址列表文件"的方式来在若干个机器上执行指定的命令并且返回结果。
上传文件:上传小型文件,不宜过大。同样支持-h IP和 -f 主机IP列表文件的方式运行。

关于开源
聆听flw等诸位朋友意见,这几天做些修改,会讲代码放出来,得到大家的指点,意见才能改进和提升。呵呵

命令说明

  1. usage:cmclient [-p remote port] [-h remote host] [-P local port] [-H localhost] [-f configfile] [-c command] [-n task number] [-u  updatefile] [-d dest dir default '/tmp']
复制代码
解释如下:

  1. -p 服务器端的端口
  2. -h 服务器地址
  3. -f 存储服务器IP列表的文件名称,一行一个IP地址。
  4. 注意,-h和-f不能同时用。
  5. -P和-H是用来支持异步返回结果的,目前不启用。
  6. -c "命令" 执行命令
  7. -u "上传文件全路径" 比如 -u "/tmp/1.txt"将把1.txt上传。
  8. -d "上传目标目录" 比如 -u "/tmp/1.txt" -d "/etc" 将把本地/tmp/1.txt上传到目的机器的/etc目录下。
  9. 注意 -c 和 (-u -d)不能同时用,也就是说文件和命令不能在一次执行中支持。
  10. -n 线程数 如果你的IP有2000个,可以开50个线程,自动分配每个线程40个(最大支持50个线程)
复制代码
比如,一组测试脚本如下:

  1. #test batch upload file
  2. ./cmclient -p 12345 -f ip1.conf -u 1.txt -d /tmp/1/2  -n 20

  3. #test batch run commds
  4. ./cmclient -p 12345 -f ip.conf -c "uname -a"  -n 20

  5. #test single host command running
  6. ./cmclient -p 12345 -h 10.32.20.200 -c "uname -a"  -n 20

  7. #test single host file upload
  8. ./cmclient -p 12345 -h 10.32.20.200 -u Makefile -d /tmp/  -n 20
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-03-17 10:13 |只看该作者
本帖最后由 duanjigang 于 2011-03-17 10:21 编辑

安装方法:
解压缩cme.tar.gz得到目录cme
拷贝动态库

  1. cp cme/lib/* /usr/lib/
  2. ldconfig
复制代码
然后安装程序

  1. cp cme/cm* /usr/bin/
复制代码
设置cmserver的自启动
在/etc/rc.local中添加一行

  1. /usr/bin/cmserver -p 12345  -T cmd &
复制代码
重启机器,cmserver就启动,或者直接手动启动即可。

二进制编译的环境:

  1. Red Hat Enterprise Linux Server release 5 (Tikanga)
  2. Linux localhost.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
  3. gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-03-17 10:20 |只看该作者
本帖最后由 duanjigang 于 2011-03-17 10:22 编辑

测试例子

  1. [root@localhost tmp]# cat ip.conf
  2. 10.32.20.199
  3. 10.32.20.214
  4. 10.32.20.217
  5. 10.32.20.218
  6. 10.32.20.219
  7. 10.32.20.245
  8. 10.32.20.111
  9. [root@localhost tmp]# cmclient -p 12345 -f ip.conf -c "date" -n 10
  10. run command [date]:
  11. 10.32.20.199
  12. Mon Mar 14 23:00:50 CST 2011
  13. 10.32.20.214
  14. Mon Mar 14 23:00:50 CST 2011
  15. 10.32.20.217
  16. Mon Mar 14 23:00:50 CST 2011
  17. 10.32.20.218
  18. Mon Mar 14 23:00:50 CST 2011
  19. 10.32.20.219
  20. Mon Mar 14 23:00:50 CST 2011
  21. 10.32.20.245
  22. Thu Mar 17 16:47:15 CST 2011
  23. 10.32.20.111
  24. connect failed


  25. [root@localhost tmp]# cmclient -p 12345 -h 10.32.20.245 -u /root/install.log.syslog  -d /tmp/123/456/789 -n 1
  26. deliver file [/root/install.log.syslog] to directory [/tmp/123/456/789]:
  27. 10.32.20.245
  28. success
  29. [root@localhost tmp]# cmclient -p 12345 -h 10.32.20.245 -c 'ls /tmp/123/456/789' -n 1
  30. run command [ls /tmp/123/456/789]:
  31. 10.32.20.245
  32. install.log.syslog
复制代码

论坛徽章:
0
4 [报告]
发表于 2011-03-17 14:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2011-03-17 14:37 |只看该作者
不错!

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
6 [报告]
发表于 2011-03-17 15:00 |只看该作者
请客吃饭么?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
7 [报告]
发表于 2011-03-17 15:08 |只看该作者
无奈的顶一下

论坛徽章:
0
8 [报告]
发表于 2011-03-17 15:49 |只看该作者
虽然看不大懂 但是一定要赞一个!!!!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2011-03-17 22:31 |只看该作者
回复 1# duanjigang


    好东西,强烈支持。感谢 duan 兄的分享。

论坛徽章:
0
10 [报告]
发表于 2011-03-17 22:34 |只看该作者
感谢老赵支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP