使用SecureCRT登入Linux伺服器

天府雲創發表於2017-03-28

背景:做運維的如果機器都登入錯誤了, 那結果就不用說了。

在使用SecureCRT的時候,不用更改標籤名稱就可以很明瞭的知道自己現在的對話是在哪個機器上,可以在Linux機器做以下修改:

方法1:把下面上面的那句命令列追加到 /etc/profile

----------------------------------------------------------------

echo -ne "\e]2;${USER}@$(hostname -I | tr ' ' '\n' | grep -E  '(^10\.|^172|^192)')\a"

顯示效果如下:


方法2: 對方法1 進行改進,  方法1的不足是要將維護的所有機器都要修改 /etc/profile檔案。

--------------------------------------------------------------------

解決辦法1:機器生產後有批量指令碼可以修改,但又有問題,  每個環境的機器登入方式不同有通過祕鑰檔案的,有通過密碼的,有通過免祕鑰的,就需要從中心運維機來操作,為此投入人力太不合適了。

解決辦法2:SecureCRT登入所有後,傳送命令到所有視窗。(不修改/etc/profile檔案)

登入機器後,在SecureCRT


在視窗中輸入如下命令

clear;externalip=$(timeout 5 curl -s ipecho.net/plain;echo);[ $? -ne 0 -o 'X' == "$externalip"X ] && externalip='No outside network or ACL drop';clear;echo -e "NetWork info\n--------------\n`hostname -I`";echo;echo -e "External_IP = $externalip";echo -e "UserName    = `whoami` \nUserHomeDir = $HOME";echo -ne "\e]2;${USER}@$(hostname -I | tr ' ' '\n' | grep -E  '(^10\.|^172|^192)' | head -n 1)\a"

顯示效果:


方法3:對方法2進行改進,  方法2的不足每次都要輸入一串煩人的程式碼

---------------------------------------------------

設定全域性的Mapped Keys

Options —> Global Options —> Edit default Settings —> Terminal —> Emulation —> Mapped Keys,

按F1, send string, 輸入下面的內容

1 clear;externalip=$(timeout 5 curl -s ipecho.net/plain;echo);[ $? -ne 0 -o 'X' == "$externalip"X ] && externalip='No outside network or ACL drop';clear;echo -e "NetWork info\\n--------------\\n`hostname -I`";echo;echo -e "External_IP = $externalip";echo -e "UserName    = `whoami` \\nUserHomeDir = $HOME";echo -ne "\\e]2;${USER}@$(hostname -I | tr ' ' '\\n' | grep -E  '(^10\\.|^172|^192)' | head -n 1)\\a"\n

重啟SecureCRT

登入多臺機器後,傳送命令到所有視窗。

按F1, 程式碼自動輸入,敲回車。

效果如下:


後在更新如何用SecureCRT呼叫python指令碼達到自動登入N臺伺服器的功能,同時自動修改標籤。

相關文章