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

来源:互联网 发布:环保部网络举报平台 编辑:程序博客网 时间:2024/06/06 01:27

功能:

    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 xcz1xcz1 192.168.1.158  123### xcz2#info: this is xcz2xcz1 192.168.1.159  123### xcz3#info: this is xcz3xcz3 192.168.1.160  123### xcz4#info: this is xcz4xcz4 192.168.1.161  123### xcz5#info: this is xcz5xcz5 192.168.1.162  123

fwqs_ssh.sh代码

#!/bin/bashLOGIN_FWQ=xxxLOGIN_FWQ_IP=xxxLOGIN_FWQ_PW=xxx### 检查用法#if [ $# -ne "2" ]if [ $# -eq 0 ]thenecho "argc: $#"echo "usage:"echo "./cmd list"echo "./cmd list info"echo "./cmd list n"exitfiif [[ $1 != "list" ]]thenecho "argc: $#"echo "usage2:"echo "./cmd list"echo "./cmd list info"echo "./cmd list n"exitfi### 打印list#if [ $1 == "list" & $# -eq 2 ]#==> ./_fwqs_ssh.sh: line 25: [: missing `]'#echo "$#"if [[ $1 == "list" && $# -eq 1 ]]thenecho "$0 $1:"list_file=fwqs_list.txti=1cat $list_file | while read linedoLOGIN_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 == *.*.*.* ]]thenecho "$i  IP: $LOGIN_FWQ_IP NAME: $LOGIN_FWQ"let i+=1fidoneexitfi### 打印list + 详细信息if [[ $1 == "list" && $2 == "info" ]]thenecho "$0 $1 $2:"list_file=fwqs_list.txti=1cat $list_file | while read linedoLOGIN_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 == *.*.*.* ]]thenecho "$i  IP: $LOGIN_FWQ_IP NAME: $LOGIN_FWQ"let i+=1fiif [[ $LOGIN_FWQ == "#info:" ]]thenecho "--------------------------------------------------"echo "$line"fidoneexitfi### 查找服务器if [[ $1 == "list" && $# -eq 2 ]]then#echo "$0 $1:"#list_file=fwqs_list.txti=0#定义为环境变量没有用的,环境变量只是在子进程创建的时候可以从父进程复制到子进程,#它无法实现从子进程往父进程传递,也不能在子进程运行期间从父进程获得新值。#cat $list_file | while read linewhile read linedoLOGIN_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+=1fi#echo ------- i = $i n = $2if [[ $2 == $i ]]then#echo "$LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"breakfidone < fwqs_list.txt#echo "out while $LOGIN_FWQ -- $LOGIN_FWQ_IP -- $LOGIN_FWQ_PW"#echo ------- i = $i n = $2if [[ $2 > $i ]]thenecho "WARNING: $2 is out for lists(size: $i)"exitfielseecho "argc: $#"echo "usage3:"echo "./cmd list"echo "./cmd list info"echo "./cmd list n"exitfi### 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 0
原创粉丝点击