shell脚本实现ssh自动登录-功能扩展,实现多个IP可选

功能:

    shell脚本实现ssh自动登录-功能扩展,实现多个IP可选。有时我们可能要用ssh登录多个远程的帐号,这时下面的方法可能就会有所限制。现在重新扩展fwqs_ssh.sh 脚本实现可用ssh登录多个远程帐号。

shell脚本实现ssh自动登录 http://blog.csdn.net/xuecz1230/article/details/53939252

说明:
(1) fwqs_ssh list
    打印预先设置的服务器列表,输出如下

./_fwqs_ssh.sh list:
    1  IP: 192.168.1.158NAME: xcz1
    2  IP: 192.168.1.159NAME: xcz2
    3  IP: 192.168.1.160NAME: xcz3
    4  IP: 192.168.1.161NAME: xcz4
    5  IP: 192.168.1.162NAME: xcz5

(2) cmd list info
    打印预先设置的服务器列表+详细信息,输出如下

./_fwqs_ssh.sh list info:
--------------------------------------------------
#info: this is xcz1
    1  IP: 192.168.1.158NAME: xcz1
--------------------------------------------------
#info: this is xcz2
    2  IP: 192.168.1.159NAME: xcz2
--------------------------------------------------
#info: this is xcz3
    3  IP: 192.168.1.160NAME: xcz3
--------------------------------------------------
#info: this is xcz4
    4  IP: 192.168.1.161NAME: xcz4
--------------------------------------------------
#info: this is xcz5
    5  IP: 192.168.1.162NAME: xcz5

(3) cmd list n
ssh登录第n个服务器

代码如下:

fwqs_list.txt 

### xcz1
#info: this is xcz1
xcz1 192.168.1.158  123

### xcz2
#info: this is xcz2
xcz1 192.168.1.159  123

### xcz3
#info: this is xcz3
xcz3 192.168.1.160  123

### xcz4
#info: this is xcz4
xcz4 192.168.1.161  123

### xcz5
#info: this is xcz5
xcz5 192.168.1.162  123

fwqs_ssh.sh代码

#!/bin/bash

LOGIN_FWQ=xxx
LOGIN_FWQ_IP=xxx
LOGIN_FWQ_PW=xxx

### 检查用法
#if [ $# -ne "2" ]
if [ $# -eq 0 ]
then
	echo "argc: $#"
	echo "usage:"
	echo "	./cmd list"
	echo "	./cmd list info"
	echo "	./cmd list n"
	exit
fi

if [[ $1 != "list" ]]
then
	echo "argc: $#"
	echo "usage2:"
	echo "	./cmd list"
	echo "	./cmd list info"
	echo "	./cmd list n"
	exit
fi

### 打印list

#if [ $1 == "list" & $# -eq 2 ]
#==> ./_fwqs_ssh.sh: line 25: [: missing `]'

#echo "$#"
if [[ $1 == "list" && $# -eq 1 ]]
then
	echo "$0 $1:"
	list_file=fwqs_list.txt

	i=1
	cat $list_file | while read line
	do
		LOGIN_FWQ=$(echo $line | awk '{print $1}')
		LOGIN_FWQ_IP=$(echo $line | awk '{print $2}')
		LOGIN_FWQ_PW=$(echo $line | awk '{print $3}')
		#if [[ $LOGIN_FWQ_IP == "*.*.*.*" ]]
		if [[ $LOGIN_FWQ_IP == *.*.*.* ]]
		then
			echo "	$i  IP: $LOGIN_FWQ_IP 	NAME: $LOGIN_FWQ"
			let i+=1
		fi
	done
	exit
fi

### 打印list + 详细信息
if [[ $1 == "list" && $2 == "info" ]]
then
	echo "$0 $1 $2:"
	list_file=fwqs_list.txt

	i=1
	cat $list_file | while read line
	do
		LOGIN_FWQ=$(echo $line | awk '{print $1}')
		LOGIN_FWQ_IP=$(echo $line | awk '{print $2}')
		LOGIN_FWQ_PW=$(echo $line | awk '{print $3}')
		#if [[ $LOGIN_FWQ_IP == "*.*.*.*" ]]
		if [[ $LOGIN_FWQ_IP == *.*.*.* ]]
		then
			echo "	$i  IP: $LOGIN_FWQ_IP 	NAME: $LOGIN_FWQ"
			let i+=1
		fi
		if [[ $LOGIN_FWQ == "#info:" ]]
		then
			echo "--------------------------------------------------"
			echo "$line"
		fi
	done
	exit
fi

### 查找服务器
if [[ $1 == "list" && $# -eq 2 ]]
then
	#echo "$0 $1:"
	#list_file=fwqs_list.txt

	i=0

	#定义为环境变量没有用的,环境变量只是在子进程创建的时候可以从父进程复制到子进程,
	#它无法实现从子进程往父进程传递,也不能在子进程运行期间从父进程获得新值。
	#cat $list_file | while read line

	while read line
	do
		LOGIN_FWQ=$(echo $line | awk '{print $1}')
		LOGIN_FWQ_IP=$(echo $line | awk '{print $2}')
		LOGIN_FWQ_PW=$(echo $line | awk '{print $3}')

		#echo "------- $LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"

		if [[ $LOGIN_FWQ_IP == *.*.*.* ]]
		then
			#echo "$LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"
			let i+=1
		fi

		#echo ------- i = $i n = $2
		if [[ $2 == $i ]]
		then
			#echo "$LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"
			break
		fi
	done < fwqs_list.txt

	#echo "out while $LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"
	#echo ------- i = $i n = $2

	if [[ $2 > $i ]]
	then
		echo "WARNING: $2 is out for lists(size: $i)"
		exit
	fi
else
	echo "argc: $#"
	echo "usage3:"
	echo "	./cmd list"
	echo "	./cmd list info"
	echo "	./cmd list n"
	exit
fi

### ssh登录
#echo "============================================"
#echo "$LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"

#LOGIN_FWQ=xxx
#LOGIN_FWQ_IP=xxx
#LOGIN_FWQ_PW=xxx
./_fwq_ssh-login_v2.sh $LOGIN_FWQ $LOGIN_FWQ_IP $LOGIN_FWQ_PW




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值