【效率工具】史上最好用的SSH一键登录脚本,超强更新!
说明
虽然已经是凌晨,但丝毫不能掩盖我激动的心情,今天完成了对GotoSSH的一次大更新,新增了两个肥肠实用的功能,我只能说,是真的好用,话不多说,先来看效果图:
普通的一键登录:

一键登录跳板机,然后跳转登录线上服务器:


一键登录跳板机查看指定日志:

一键登录跳板机后跳转线上服务器查看指定日志:

然后是更加劲爆内容,一键从跳板机复制指定文件到本地:

一键从生产环境复制指定文件到本地:


我只能说,是真的强。
Shell脚本
Shell脚本已经发布到了github上,链接在此:https://github.com/MFrank2016/GotoSSH
可自行前往下载,好用的话别忘了给个star。
安装依赖
CentOS :
$ sudo yum install -y expect
Ubuntu :
$ sudo apt-get install tcl tk expect
Mac :
$ sudo brew install expect
安装 GotoSSH
$ 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]
command=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]
command=tail -f -n 10 testlog.log
Server1 表示以下是为第一台服务器设置的命令,同理Server2则表示为第二台设置的命令。对于顺序没有要求,只要为需要设置自定义命令的服务器添加该选项即可。
command 是命令的名字,可以随意取名,最好简单一点,方便输入,等号后面是实际执行的命令。
举个栗子:
gotossh 1 command
只要你小手一点回车,脚本便会自动帮你登录到第一台服务器,然后执行上面的命令tail -f -n 10 testlog.log。
注意,如果你输入的命令需要密码的话,需要在命令后面把密码也带上,并且用|分隔。
举个栗子:
[Server1]
command=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
解决了什么问题
- 查询线上服务器日志的时候,需要先登录跳板机,然后再登录服务器,过程比较麻烦。需要多次查看服务器信息,如,ip,用户名,密码等,查看后还需要来回进行复制。利用GotoSSH,配置好服务器信息之后,可以直接一键跳转。
- 增加了登录服务器后执行自定义命令,这一点主要是在查看日志的时候,还需要先去查看一下服务的日志路径,然后再切回来看日志,既然每次都是模板式操作,为何不简化一下呢?
- 服务器上有时候操作很不方便,因为对权限做了严格的限制,很多命令无法使用,所以增加了对
scp命令的支持,可以将线上服务器日志一键拷贝到本地,岂不是美滋滋。
最后再贴一下项目地址:https://github.com/MFrank2016/GotoSSH
如果觉得还不错,别忘了加个star✨也欢迎关注我的公众号留言交流。

【效率工具】史上最好用的SSH一键登录脚本,超强更新!的更多相关文章
- 【效率工具】史上最好用的SSH一键登录脚本,第三版更新!
说明 时隔一周,GotoSSH又迎来了一次重大更新,让这个史诗级的shell工具变得更加丝般顺滑了~ 这次的主要更新是对自定义全局命令以及自定义属性的支持,让设置更加灵活,此外,对各个细节进行了调整, ...
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
- .Net魔法堂:史上最全的ActiveX开发教程——自动更新、卸载篇
一.前言 B/S模式的特点之一,客户端版本升级相对简单.快捷,适合产品的快速迭代.而ActiveX组件的自动更新同样也继承了这一优点.下面我们一起来了解吧! 二.二话不说更新ActiveX 1. 设置 ...
- 【效率工具】SSH一键登录脚本(可一键从跳板机登录线上服务器)
说明 前阵子上线,一次性上了十个服务,一直上到凌晨才完事,期间每个服务都要先输入跳板机的登录信息来登录跳板机,然后再输入线上服务器的信息来登录线上服务器,实在是太过于麻烦,而且有些服务还有好几台服务器 ...
- [开发工具] 史上最全系列之开发环境搭建之DDMS
原文链接:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=275774 一.简介 DDMS 的全称是DalvikDebug Mon ...
- 吐血总结|史上最全的MySQL学习资料!!
在日常工作与学习中,无论是开发.运维.还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一.在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL. 在刚刚出 ...
- spring + spring mvc + tomcat 面试题(史上最全)
文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...
- Linux面试题(史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- 【腾讯Bugly干货分享】OCS——史上最疯狂的iOS动态化方案
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/zctwM2Wf8c6_sxT_0yZvXg 导语 在 ...
随机推荐
- Spring Cloud是怎么运行的?
导读 在之前的文章中给大家介绍了Spring Boot的基本运行原理(链接),收到了很多读者朋友们关于目前比较流行的微服务框架Spring Cloud的问题反馈.因此,在这篇文章中小码哥打算和大家一起 ...
- ionic hidden scroll bar
ionic 项目中隐藏所有的ion-content滚动条 在variables.scss文件中添加以下代码 ::-webkit-scrollbar { display: none; }
- 【Java提高】---通过UUID、SHA-1、Base64组合加密
通过UUID.SHA-1.Base64组合加密 该篇文章实现的最终效果是: 1)加密是不可逆的. 2)相同字符串加密产生后的字符串都不一样 3)所以要想比较两个字符串是否相等,需要用已经加过密的字符串 ...
- MaskRCNN-Keypoints
这个月先写一篇吧,后面要复习数学考试了,可能到时候就忘了.今天写一个比较有意思的东西,关于人体的分割与姿态估计.如下图所示: 图片选自mask rcnn的论文,这里由于时间的关系,就不多叙述技术细节了 ...
- python练习五—简单web应用
配置apache 我以前web开发基本都是基于java平台的,比如tomcat,servlet等等,由tomcat接收http请求,然后交给servlet处理,servlet处理完成以后把返回结果交给 ...
- Linux常用命令之文件和目录处理命令
目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...
- SharePoint之使用Jquery Mobile定制自己的手机页面
最近一直很忙,既要创业,又要工作,还有弄弄自己的小项目(已暂停,http://www.codelove1314.com/,如果你不愿意浪费你的业余时间,喜欢弄点小东西,请联系我),所以虽然有很多东西分 ...
- python三大神器之pip
pip是一款管理python各类包和库的工具,非常好用.下文介绍常用的一些命令. ● 安装:pip install 库名 也可以指定版本:pip install 库名=版本 ● 卸载:pip unin ...
- Go基础系列:互斥锁Mutex和读写锁RWMutex用法详述
sync.Mutex Go中使用sync.Mutex类型实现mutex(排他锁.互斥锁).在源代码的sync/mutex.go文件中,有如下定义: // A Mutex is a mutual exc ...
- 翻译:XtraDB/InnoDB中的AUTO_INCREMENT处理方式(已提交到MariaDB官方手册)
本文为mariadb官方手册:XtraDB/InnoDB中的AUTO_INCREMENT处理方式的译文. 原文:https://mariadb.com/kb/en/auto_increment-han ...