关于 ser 脚本

https://github.com/frimin/ser

由于工作需要登录各种主机,而且登录的又会比较频繁。那时候的做法就是:先打开 ssh_config 内容看一眼我想登录的主机名,然后通过 ssh <host> 命令进行登录,但是随着主机的数量越来越多,我在 vim 里向下翻页的次数也越来越多。

烦躁,遂写 ser 的原始版本出来用,为什么叫 ser 呢?其实就是截取 server 前面三个字母,反正就是个登录服务器的脚本,直接用脚投票决定了名字。

用法就是直接 ser 一下显示你的 ssh_config 中的主机名,然后 ser <数字> ssh 登录上去,美滋滋,和频繁打开配置去看说再见。这个脚本就这样可能用了一年有余,期间还偷偷给同事用。

到了最近开始逐渐有点新的需求了:需要同时分发配置到多台机器上,并且执行一些指令。于是重写了 ser , 并通过 bash shell 的通配符来做到批量执行 ssh 登录并执行指令以及批量拷贝文件的 scp 封装:

$ ser '*' command
$ ser cp file '*:~/'

但是人的欲望是填不平的,最近自己又有需求弄各种隧道映射,于是又打算把管理 ssh 隧道的功能加进去,需求可以见我另外的一篇文章 SSH 隧道自动重连,当然这个功能在我写下这篇文章的时候还没有完全写完,还在分之里。不过功能实际上已经完全可用了,不过放 github 上的代码你知道的,总归有点洁癖。

最开始打算是用 nodejs 写的,不过想起来相对略沉重了些,ser 的定位是一个功能简单且轻便的 ssh 辅助工具。