Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8417
  • 博文数量: 1
  • 博客积分: 55
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-04 19:53
文章分类

全部博文(1)

文章存档

2010年(1)

我的朋友

分类:

2010-04-15 09:39:20

如果你的服务器的ip是有一定范围的,比如是 192.168.0.1--192.168.0.100之间,而且他们的root用户密码相同,都为redhat,那么你可以用下面的脚本快速的部署信任关系。

#!/bin/bash

# auto copy publick key to ssh server,but you must create the rsa public key first!

# auth: 

# date: 20100408

# include a  expect script

# see the log file  /tmp/test.log

 

cat>/tmp/auto.tcl<

#!/usr/bin/expect -f

set timeout -1

#set user [lrange $argv 1 1]

#set password [lrange $argv 2 2]

set ipaddr [lrange $argv 0 0]

spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@\$ipaddr

expect  "Are you sure you want to continue connecting (yes/no)?"

send "yes\r"

expect "*?assword:"

send "redhat\r"

expect eof

eof

chmod 755 /tmp/auto.tcl

 

rm -f /root/.ssh/known_hosts

for i in {1..100}

do

if

ping -c2 192.168.0.$i &>/dev/null

then

/tmp/auto.tcl 192.168.0.$i &>/dev/null

echo "********192.168.0.$i**************">>/tmp/test.log

ssh 192.168.0.$i ifconfig eth0|grep 'inet addr:'|cut -f2 -d:|cut -f1 -d' ' >>/tmp/test.log

else

echo "the server 192.168.0.$i is't exsit">>/tmp/down.log

fi

done

 

 

建立后,执行这个脚本就可以了

 

如果是你的服务器ip,root密码无规律咋办呢?这个时候可以这么做,建立一个文件 server.txt 内如格式如下

ip地址:root密码

 

比如

202.19.1.3:qwz234

201.19.1.2: de123s

...

 

这个时候可以这么来做

#!/bin/bash

# auto copy publick key to ssh server,but you must create the rsa public key first!

# auth: 

# date: 20100408

# include a  expect expect script

# see the log file  /tmp/test.log

 

cat>/tmp/auto.tcl<

#!/usr/bin/expect -f

set timeout -1

#set user [lrange $argv 2 2]

set password [lrange $argv 1 1]

set ipaddr [lrange $argv 0 0]

spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@\$ipaddr

expect  "Are you sure you want to continue connecting (yes/no)?"

send "yes\r"

expect "*?assword:"

send "$password\r"

expect eof

eof

chmod 755 /tmp/auto.tcl

 

rm -f /root/.ssh/known_hosts

for i in `cat /server.txt`

do

IP=`echo $i|cut -f1 -d:`

PASS=`echo $i|cut -f2 -d:`

if

ping -c2 $IP &>/dev/null

then

/tmp/auto.tcl $IP $PASS &>/dev/null

echo "********$IP**************">>/tmp/test.log

ssh $IP ifconfig eth0|grep 'inet addr:'|cut -f2 -d:|cut -f1 -d' ' >>/tmp/test.log

else

echo "the server $IP is down">>/tmp/down.log

fi

done

阅读(2559) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~