背景:做運維的如果機器都登錄錯誤了, 那結果就不用說了。
在使用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, 輸入下面的內容
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臺服務器的功能,同時自動修改標籤。