免费注册 查看新帖 |

Chinaunix

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

[文本处理] 求教一个远程执行命令的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-23 13:20 |只看该作者 |倒序浏览
今天突然想写一个脚本实现一个小小的需求:
我有多台主机,上面安装的不同的部件,就想写一个脚本实现在一台服务器执行这个脚本就能获取不同服务器上部件的版本号。
主机A、B、C上面安装的服务a、b、c
查询命令都是rca(b、c) version,现在就想在A服务器执行脚本,自动获取A\B\C服务器上对应部件的版本号。

我的初步想法是在A服务器shell脚本中使用ssh登录到B服务器使用rcb version获取出版本号后做记录返回给A服务器,再自动登录到C服务器使用rcc version获取出版本号后做记录返回给A服务器,最终A服务器获取完成后全部打印出来。

思路不知道对不对,请各位大大指教一下,方便的话写个脚本样例参考参考,谢谢了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2013-09-23 13:25 |只看该作者
思路是对的
你的A机器ssh登陆B和C的时候需要输入密码不?

论坛徽章:
0
3 [报告]
发表于 2013-09-23 13:31 |只看该作者
需要输入密码的 回复 2# Shell_HAT


   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2013-09-23 13:34 |只看该作者
回复 3# 草_香


你直接回复我的帖子就行了,论坛程序会自动提醒我。
不必发短消息给我。

两台主机之间建立信任
http://bbs.chinaunix.net/viewthread.php?tid=2320506#pid15654330
http://bbs.chinaunix.net/thread-3619435-1-1.html

论坛徽章:
0
5 [报告]
发表于 2013-09-23 14:33 |只看该作者
  1. #!/usr/bin/expect -f
  2. spawn ssh -p 22 root@172.18.1.1
  3. expect "Password:"
  4. send "123456\r"
  5. expect "*>*"
  6. send "rca version\r"
  7. expect eof
  8. }
复制代码
我是这么写的能登上去但是没有执行rca version,请问下哪里有问题额?回复 4# Shell_HAT


   

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
6 [报告]
发表于 2013-09-23 15:04 |只看该作者
回复 5# 草_香
  1. expect "*#*"
复制代码

论坛徽章:
0
7 [报告]
发表于 2013-09-23 18:22 |只看该作者
我建立好ssh信任关系了,执行远程命令也可以了
  1. #!/bin/sh
  2. echo aveison
  3. ssh 192.168.1.1 "su - a -c version"
复制代码
但是有一个Warning的提示我想干掉,
  1. aveison
  2. Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts.
  3. Copyright 1999 - 2030,  XXX Tech. Co., Ltd.
  4. Release Version:C16
  5. Release Date:2012-07-25
  6. Build Version:IB C16
复制代码
想咨询下大家,第一行的Warning消息可以怎么屏蔽掉啊?并且我想通过awk提取Release Version后的V100R001C16展示,要在我的脚本中怎么做过滤啊?
回复 4# Shell_HAT


   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2013-09-25 10:13 |只看该作者
回复 7# 草_香
  1. #!/bin/sh
  2. echo aveison
  3. ssh 192.168.1.1 "su - a -c version" | awk -F: '/Release Version/{print $2}'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP