Linux伺服器遠程登入伺服器go工具用法

來源:互聯網
上載者:User

背景

平時工作中總是需要登入到線上服務,以解決各種問題,比如:
遠程登入線上日誌機器查看PHP Error Log、Mysql Error Log等
登入QA的測試機檢查代碼是否正常發布、各項配置是否正確
登入個人開發機
但是公司伺服器都是需要通過跳板機登入,每次登入線上機器都需要先到跳板機登入一下,再登入到目標機器,很繁瑣,而且必須得記得住目標機器的IP或者機器名才能儘快登入上去,要不然還得一頓查。。。

所以弄了個小工具,實現快捷登入(其實是幾年前寫的一個小指令碼,最近升級了一下),分享出來大家使用。功能大概包括:
自訂遠程機器的快捷登入方式
查看所有已配置過的捷徑
支援跳板機和非跳板機兩種情境的登入
對於任意一個有許可權的機器,可以直接一條命令登入
可以指定任意賬戶登入線上伺服器
總之,還是蠻方便的,簡單的小工具,Open給大家,也許你也用得上。
一、工具下載

百度搜尋go工具:go.zip

二、配置&部署

1、將檔案儲存到固定的某個目錄

cp ~/Downloads/go ~/Documents/Tools/

2、修改許可權

chmod 0755 ~/Documents/Tools/go

3、配置到環境變數中

cd /usr/bin
ln -s ~/Documents/Tools/go go

4、修改配置

vim ~/Documents/tools/go

註:需要修改的內容有:

username: 用於登入跳板機
default_user:預設已這個賬戶登入到線上機器
server_list:自訂的登入捷徑

三、使用

1、查看協助

go -h

 


2、查看所有捷徑
go -list
3、以預設使用者登入某線上機器
go syq-fe03
4、以指定使用者登入newlab機器
go newlab xianliezhao
5、任意一台有許可權的機器,但是沒有配置捷徑
go 172.16.0.31 work
6、關於配置&登入非跳板機的機器(比如我的阿里雲機器)
go aliyun
四、範例
五、指令碼原始碼
#! /bin/sh################################################################### 此工具用於快捷登入線上機器# author:xianliezhao@meilishuo.com################################################################### 你的名字,用於登入到跳板機username="xianliezhao"# 預設以這個賬戶登入到線上機器default_user="work"# 定義機器的捷徑server_list=(#----------------------------------------------------------------------------------------------------#   "捷徑        機器名/IP         是否需要跳板機(預設是1:需要)    用什麼許可權登入(預設是:$default_user)"#----------------------------------------------------------------------------------------------------    "syq-fe01       syq-bizfe-01"    "syq-fe02       syq-bizfe-02"    "syq-fe03       syq-bizfe-03"    "syq-fe04       syq-bizfe-04"    "dfz-fe01       dfz-bizfe-01"    "dfz-fe02       dfz-bizfe-02"    "dfz-fe03       dfz-bizfe-03"    "dfz-fe04       dfz-bizfe-04"    "dfz-fe05       dfz-bizfe-05"    "dfz-fe06       dfz-bizfe-06"    "dfz-fe07       dfz-bizfe-07"    "dfz-fe08       dfz-bizfe-08"    "dfz-snake01    dfz-bizsnake-01"    "dfz-snake02    dfz-bizsnake-02"    "dfz-snake03    dfz-bizsnake-03"    "dfz-doota01    dfz-dootafe-01"    "dfz-doota02    dfz-dootafe-02"    "dfz-doota03    dfz-dootafe-03"    "aliyun         www.baidufe.com       0   root")# 使用協助help(){    echo "    遠程登入工具:version 1.0    使用方法:        【1】:go 機器名 [登入帳號]            用法1:                預設以work許可權登入newlab ----> go newlab            用法2:                以rd許可權登入newlab ----> go newlab rd            用法3:                以個人帳號許可權登入newlab ----> go newlab xianliezhao        【2】:查看所有機器捷徑:            go -list        \n"    exit 1}# 查看所有捷徑show_list() {    echo "\n您可以使用捷徑進行登入如下伺服器,如:go newlab rdol\n"    echo "+------------------------------------------------------------------------------+"    for (( i=0;i<${#server_list[*]};i=i+5 ));do        A=`echo ${server_list[$i+0]} | awk '{print $1}'`        B=`echo ${server_list[$i+1]} | awk '{print $1}'`        C=`echo ${server_list[$i+2]} | awk '{print $1}'`        D=`echo ${server_list[$i+3]} | awk '{print $1}'`        E=`echo ${server_list[$i+4]} | awk '{print $1}'`        # 格式化輸出        printf "%-1s %-13s %-1s %-13s %-1s %-13s %-1s %-13s %-1s %-12s %-1s\n" \                \| ${A:-' '} \| ${B:-' '} \| ${C:-' '} \| ${D:-' '} \| ${E:-' '} \|    done    echo "+------------------------------------------------------------------------------+\n"}# 遠程登入remote_login(){    # 預設的目標機器是$1    host=$1    # 跳板機    proxy="@osys11.meilishuo.com -t ssh "    # 如果指定了第二參數,則表示指定的賬戶登入    if [ "$2" != "" ];then        default_user=$2    fi    # 如果預設的登入使用者是 rdol ,則在osys11機器上切換一下使用者    if [ "$default_user" == "rdol" ];then        proxy=$proxy"rdol@osys11 -t ssh ";    fi    # 從server_list裡查詢是否有預定的捷徑    for key in ${!server_list[*]} ; do        A=`echo ${server_list[$key]} | awk '{print $1}'`    # 捷徑        B=`echo ${server_list[$key]} | awk '{print $2}'`    # 機器名/IP        C=`echo ${server_list[$key]} | awk '{print $3}'`    # 是否需要通過跳板機登入        D=`echo ${server_list[$key]} | awk '{print $4}'`    # 登入使用者名稱        if [ "$host" == "$A" ];then            host=$B;            if [ "$C" == "0" ];then                proxy="";            fi            if [ ! -z $D ];then                default_user=""                username=$D            fi            break;        fi    done    # 登入目標機器    ssh $username$proxy$default_user@$host}clear# 未指定參數,或者參數為 -h | --help,則出現使用協助if [[ "$1" == "" || "$1" == "-h" || "$1" == "--help" ]];then    help;# 查看所有捷徑elif [ "$1" == "-list" ];then    show_list;# 執行登入else    remote_login $1 $2;fi
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.