【效率工具】史上最好用的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 导语 在 ...
随机推荐
- document.getElementsByClassName返回的是一个数组
转载自:https://www.cnblogs.com/shark1100913/p/6713327.html document.getElementsByClassName("a&qu ...
- mysql 开发基础系列10 存储引擎 InnoDB 介绍
一. 概述: InnoDB存储引擎提供了具有提交,回滚,和崩溃恢复能力的事务安全,对比MYISAM 的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引.它的特点有如下: ...
- [NewLife.XCode]实体列表缓存(最土的方法实现百万级性能)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- 【EF6学习笔记】(二)操练 CRUD 增删改查
本篇原文链接: Implementing Basic CRUD Functionality 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根 ...
- ES6躬行记(6)——Symbol
本节将会重点分析ES6引入的第6种基本类型:Symbol(符号).符号可以像字符串那样作为对象的属性名,只是它有唯一性的特点,可以避免属性名之间的冲突. 一.创建 符号没有字面量形式,只能通过Symb ...
- vs javascript intellisence失效
前些天写js的时候发现vs的提示都没了...纳闷但是没去了解原因. 今天实在是受不了了. 网上搜了一下,看到msdn文档上一句话,“通过使用 reference 指令,Visual Studio 能够 ...
- SSM框架的sql中参数注入(#和$的区别)
<select id="findUsersByUserName2" resultType="java.util.Map" parameterType=&q ...
- golang的字符串拼接
常用拼接方法 字符串拼接在日常开发中是很常见的需求,目前有两种普遍做法: 一种是直接用 += 来拼接 s1 := "Hello" s2 := "World" s ...
- MyBatis学习总结(一)——ORM概要与MyBatis快速起步
程序员应该将核心关注点放在业务上,而不应该将时间过多的浪费在CRUD中,多数的ORM框架都把增加.修改与删除做得非常不错了,然后数据库中查询无疑是使用频次最高.复杂度大.与性能密切相关的操作,我们希望 ...
- 创作型---原型模式(C# ICloneable接口的实现)
在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,可以通过对原来对象拷贝一份来完成创建,这样在内存中不需要创建多个相同的类实例,从而减少内存的消耗和达到类实例的 ...