於是我迴歸到了使用Linux的命令列終端,通過建立多個alias來滿足不同的ssh參數的情況,比如有的需要用key,有的需要用密碼;再將所有的伺服器添加到某個文字檔中以列表的方式進行更新,同時將其內容作為這些alias的自動完成列表,用起來感覺非常不錯。
具體配置:
定義alias
| 代碼如下 |
複製代碼 |
| [dong.guo@heydevops ~]$ vim .bashrc alias sshads='ssh -t -i /home/dong.guo/workspace/sshkeys/key_adsymp -l adsymp' alias sshrootdraw='sshpass -p "drawbridge" ssh -l root' alias sshrootkey='ssh -t -i /home/dong.guo/workspace/sshkeys/key_root -l root' 建立伺服器列表檔案,輸入所有的伺服器主機名稱 [dong.guo@heydevops ~]$ head -n 10 /home/dong.guo/workspace/autocomp/servers.list api1e api2e api3e c1e c2e c3e c4e c5e cb1e cb2e |
給建立的alias加上自動完成功能 www.111cn.net
| 代碼如下 |
複製代碼 |
| [dong.guo@heydevops ~]$ vim .bashrc # Enable auto-completion of servers via sshads, sshrootdraw and sshrootkey function _servers() { COMPREPLY=() local cur=${COMP_WORDS[COMP_CWORD]}; local com=${COMP_WORDS[COMP_CWORD-1]}; case $com in 'sshads') local servers=($(cat /home/dong.guo/workspace/autocomp/servers.list)) COMPREPLY=($(compgen -W '${servers[@]}' -- $cur)) ;; 'sshrootdraw') local servers=($(cat /home/dong.guo/workspace/autocomp/servers.list)) COMPREPLY=($(compgen -W '${servers[@]}' -- $cur)) ;; 'sshrootkey') local servers=($(cat /home/dong.guo/workspace/autocomp/servers.list)) COMPREPLY=($(compgen -W '${servers[@]}' -- $cur)) ;; esac } complete -F _servers sshads complete -F _servers sshrootdraw complete -F _servers sshrootkey 使配置生效 [dong.guo@heydevops ~]$ source .bashrc |
優雅的敲下TAB鍵來體驗自動完成所帶來的快感,