前阵子上线,一次性上了十个服务,一直上到凌晨才完事,期间每一个服务都要先输入跳板机的登陆信息来登陆跳板机,而后再输入线上服务器的信息来登陆线上服务器,实在是太过于麻烦,并且有些服务还有好几台服务器,检查问题的时候,服务器跳来跳去的,简直苦不堪言。git
因而,便萌发了用shell脚本的方式来一键跳转的想法,先上github上搜了搜现成的轮子,发现都不太好用,要不就是没说明,要不就是只能登一台服务器,不能知足从跳板机A跳转到线上服务器B的需求。github
因此,仍是本身动手,丰衣足食。shell
Shell脚本已经发布到了github
上,连接在此:https://github.com/MFrank2016/GotoSSHvim
这个脚本借鉴了AutoSSH
的脚本,并将其进行了修改,使得可以支持从跳板机直接跳转登陆服务器。服务器
GotoSSH
是一个一键登陆SSH的脚本,可直接从跳板机登陆到线上服务器,致力于帮助你提升工做效率。ssh
CentOS :调试
$ sudo yum install -y expect
Ubuntu :code
$ sudo apt-get install tcl tk expect
Mac :server
$ sudo brew install expect
$ git clone https://github.com/MFrank2016/GotoSSH.git $ cd GotoSSH $ chmod a+x gotossh $ sudo cp gotossh /usr/local/bin/
$ vim ~/.gotossh_config server_name|ip|username|password|port|rely_server_no
最后一列是表明该服务器依赖于哪一个服务器,若是该列的值设置为0,表明不依赖于其余服务器,不然表明须要先登陆其余服务器后才能登陆该服务器,目前暂时只能从A跳转到B,不支持多跳转,感受没有必要,若是有须要,把脚本稍微改改就好了。blog
$ vim ~/.gotossh_config test_server|192.168.0.1|root|password|22|0 online_server|192.168.2.2|root|password|22|1
$ gotossh ###################################################################################### # [GOTO SSH] # # # # # # [1] test_server - 192.168.0.1:root # # [2] online_server - 192.168.2.2:root # # # # # ###################################################################################### Server Number:(Input Server Number Here)
OR
gotossh 1
OR
gotossh 2
由于配置文件里设置了服务器2依赖于服务器1,因此会先登陆服务器1,而后再登陆服务器2。
这样,只须要小手一点,就能直接登陆线上服务器,岂不是美滋滋。
虽然只是一个简单的脚本,奈何道法太浅,硬生生折腾了大半天才调试完成,但也算是了却了一桩心愿。
独乐了不如众乐乐,特此分享给你们,但愿能对你们有所帮助。
若是以为还不错,别忘了加个star✨也欢迎关注个人公众号留言交流。