Chinaunix

标题: 求教一个远程执行命令的脚本 [打印本页]

作者: 草_香    时间: 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服务器获取完成后全部打印出来。

思路不知道对不对,请各位大大指教一下,方便的话写个脚本样例参考参考,谢谢了
作者: Shell_HAT    时间: 2013-09-23 13:25
思路是对的
你的A机器ssh登陆B和C的时候需要输入密码不?
作者: 草_香    时间: 2013-09-23 13:31
需要输入密码的 回复 2# Shell_HAT


   
作者: Shell_HAT    时间: 2013-09-23 13:34
回复 3# 草_香


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

两台主机之间建立信任
http://bbs.chinaunix.net/viewthread.php?tid=2320506#pid15654330
http://bbs.chinaunix.net/thread-3619435-1-1.html
作者: 草_香    时间: 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


   
作者: HH106    时间: 2013-09-23 15:04
回复 5# 草_香
  1. expect "*#*"
复制代码

作者: 草_香    时间: 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


   
作者: Shell_HAT    时间: 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}'
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2