虽然已是凌晨,但丝绝不能掩盖我激动的心情,今天完成了对GotoSSH的一次大更新,新增了两个肥肠实用的功能,是真的好用,话很少说,先来看效果图:git
普通的一键登陆:github
一键登陆跳板机,而后跳转登陆线上服务器:vim
一键登陆跳板机查看指定日志:bash
一键登陆跳板机后跳转线上服务器查看指定日志:服务器
而后是更加劲爆内容,一键从跳板机复制指定文件到本地:ssh
一键从生产环境复制指定文件到本地:ui
我只能说,是真的强。spa
Shell脚本已经发布到了github
上,连接在此:github.com/MFrank2016/…3d
可自行前往下载,好用的话别忘了给个star。日志
CentOS :
$ sudo yum install -y expect
复制代码
Ubuntu :
$ sudo apt-get install tcl tk expect
复制代码
Mac :
$ 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
[Server1]
commend=tail -f -n 10 testlog.log
[scp]
log1=~/testlog.log
复制代码
配置文件由三部分组成。
第一部分是服务器的基本信息。
server_name|ip|username|password|port|rely_server_no
复制代码
举个栗子:
JumpServer1|118.24.163.31|root|testpassword|22|0
OnlineServerB|111.231.59.85|root|testpassword2|22|1
复制代码
最后一列是表明该服务器依赖于哪一个服务器,若是该列的值设置为0,表明不依赖于其余服务器,不然表明须要先登陆其余服务器后才能登陆该服务器,目前暂时只支持二连跳,不支持多跳转。
第二部分是自定义命令,你能够在这里为每台服务器单独设置一些自定义命令。
[Server1]
commend=tail -f -n 10 testlog.log
复制代码
Server1 表示如下是为第一台服务器设置的命令,同理Server2则表示为第二台设置的命令。对于顺序没有要求,只要为须要设置自定义命令的服务器添加该选项便可。
commend 是命令的名字,能够随意取名,最好简单一点,方便输入,等号后面是实际执行的命令。
举个栗子:
gotossh 1 commend
复制代码
只要你小手一点回车,脚本便会自动帮你登陆到第一台服务器,而后执行上面的命令tail -f -n 10 testlog.log
。
注意,若是你输入的命令须要密码的话,须要在命令后面把密码也带上,而且用|分隔。
举个栗子:
[Server1]
commend=scp root@111.231.59.85:/var/log/test-service/test-service.log ./test-server.log|testpassword2
复制代码
固然,强烈建议不要将相似rm -rf xxx
等敏感操做放到这里,由于若是配置不当,容易引起事故。
配置文件的最后一部分是对于scp命令的支持。
[scp]
log1=~/testlog.log
log2=/var/log/test-service/test-service.log
复制代码
log1 和 log2 都是随意起的名字,后面是服务器上你想要复制的文件路径,配置好以后,你就能够这样使用:
gotossh 1 scp log1
复制代码
它就会自动把第一台服务器上的~/testlog.log
文件复制到你的本地。
gotossh 2 scp log2
复制代码
这个操做就更厉害了,由于第二台服务器设置了对第一台服务器的依赖,因此它会先登陆第一台服务器,而后再复制第二台服务器上的文件到第一台服务器上,最后,退出服务器到本地,将第一台服务器上的复制品再拷贝到本地。
配置文件举例
$ vim ~/.gotossh_config
JumpServer1|118.24.163.31|root|testpassword|22|0
OnlineServerB|111.231.59.85|root|testpassword2|22|1
[Server1]
log=tail -f -n 20 testlog.log
[Server2]
log=tail -f -n 20 /var/log/test-service/test-service.log
cd=cd /var/log/test-service/
[scp]
log3=~/testlog.log
log4=/var/log/test-service/test-service.log
复制代码
用法
$ 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)
复制代码
gotossh 1
gotossh 2
gotossh 1 log
gotossh 2 log
gotossh 2 cd
gotossh 1 scp log3
gotossh 2 scp log4
复制代码
scp
命令的支持,能够将线上服务器日志一键拷贝到本地,岂不是美滋滋。最后再贴一下项目地址:github.com/MFrank2016/…
若是以为还不错,别忘了加个star✨也欢迎关注个人公众号留言交流。