【效率工具】史上最好用的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 导语 在 ...
随机推荐
- python(leetcode)-283移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作, ...
- python之使用位运算符实现加法运算
一哥们去笔试,回来后跟我说了一通面试题,其中有一道题让我很感兴趣: 不使用+号实现加法运算 刚听到后,一脸懵逼,不使用+号怎么算? 问了朋友他也没做这题,不过仔细想了下,不使用+号,是否可以使用其他运 ...
- Java核心技术及面试指南 线性表方面的面试题总结以及答案
3.2.7.1 请用ArrayList实现Stack以及Queue的功能. public class ArrayListStack extends ArrayList implements Stack ...
- while true 死循环判断端口按顺序启动应用
需求:spring微服务应用启动较慢并且要求一个应用启完才能启第二个应用. 思路:加了个while true 死循环判断端口启动了才启下一个应用. 执行方式:/appupgrade/spring_cl ...
- SonarQube 集成 GitLabCI
本文是用于分析SonarQube代码的质量,每次在GitLab上提交代码时都使用GitLab-CI运行器进行检查. 1.SonarQube with GitLab 安装插件GitLab-plugin ...
- Android布局中的空格以及占一个汉字宽度的空格,实现不同汉字字数对齐
前言 在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: (普通的英文半角空格但不换行) 窄空格: (中文全角空格 (一个中文宽度)) ...
- MyBatis源码解析(八)——Type类型模块之TypeAliasRegistry(类型别名注册器)
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6705769.html 1.回顾 前面几篇讲了数据源模块,这和之前的事务模块都是enviro ...
- 翻译:用户变量(User-Defined Variable)(已提交到MariaDB官方手册)
本文为mariadb官方手册:User-Defined Variables的译文. 原文:https://mariadb.com/kb/en/user-defined-variables/我提交到Ma ...
- C#面向对象之封装。
封装是面向对象的基础和重要思想之一,今天具体的了解封装这一特性后发现其实自己已经接触过很多关于封装的内容了. 一.什么是封装. 封装的概念:将具体的实现细节装到一个容器中,封闭或隐藏起来(使用访问修饰 ...
- mysql写注释的几种方法
MySQL的注释风格总的来说有三种.它们分别是 1.单行注释可以用"#" select 1 as cname; #this is a comment +-------+ | cna ...