本文针对使用mac的朋友
前言
当线上出问题的时候,我们会优先去看线上日志,一般都需要打开好几个应用,我们需要一个个打开控制台,连到跳板机,然后再选择对应服务器,相当的麻烦。
我在研究了mac免登陆服务器的文章后,突发奇想,然后结合iTerm2的Profiles功能解决了这个问题。
配置
expect脚本
expect这个语言,我觉得提供了和进程交互的能力吧,具体语句含义见参考。
下面有2种情况,第一种是直接连服务器,也就是需要输入密码的方式,当然在服务器把你电脑公钥放上去,密码也不用输了。第二种情况的话,大部分公司去连线上服务器,都要经过跳板机,我们公司使用的是JumpServer,跳板机如何配置也不讲了。
普通服务器配置
connect.sh
#!/usr/bin/expect
set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect "password"
send "[lindex $argv 2]\r\n"//输入密码
expect "$*"
send "cd [lindex $argv 3]/\n"//选择目录
send "tail -200f [lindex $argv 4]\n"//跟踪日志
interact
直接使用方式如下
./connect.sh {username} {host} {password} {directory} {logFile}
跳板机配置
jump.sh
#!/usr/bin/expect
spawn ssh jhost
expect "*" {send "[lindex $argv 0]\n"} //选择跳板机
expect "$*" {send "cd [lindex $argv 1] \n"}//选择目录
send "tail -200f [lindex $argv 2]\n"//跟踪日志
interact
直接使用方式如下
./jump.sh {jumpServerName} {directory} {logFile}
iTerm2配置
iTerm2这边我们主要配置让他一次性打开多个tab连接不同的服务器,配置方式如下

tags这个配置是关键点,用来对我们打开的窗口分组,是我们实现一键打开多个服务器的关键
Badge的话,会在打开的窗口增加一个标记,区分下这台服务器干嘛的
Command就是打开这个窗口执行的脚本,也就是我上一节提供的脚本
使用方式如下

点了Open All 之后 就连接上了这6台服务器

一秒钟查看6台服务器错误日志,尤其是在有紧急bug的时候,一台台服务器敲命令去连,很烦躁。
网友评论