给sshw增加scp能力
背景
运维侧的工作中,非常频繁地使用 terminal,经常需要往服务器上拷贝文件,或者把服务器上文件拿到本地。
以往是直接使用 ssh user@xx.xx.xx.xx 的方式登录机器终端,但记住 ip 是不容易的,因此使用了 ssh config,文件大致是这样:
1 |
|
一开始还挺好,但随着管理的机器越来越多,这种方法也很难搞,因为记不住名字!!
sshw
经过调研,发现了 sshw ,国内一哥们儿发起的,主要的能力是:
- 自动输入密码
- ssh 跳板
- 机器分组
- 机器选择
- 连接后执行命令
都是非常实用的能力,用着非常舒服。
需求
日常登录服务器没啥问题,但当我想要使用 scp 进行文件拷贝的时候,还是需要去复制地址和密码,用得少还能接受,但最近因为一些工作,需要经常使用 scp,老的方式就有点不太好接受了。
因此,决定给 sshw 增加子命令 scp
设计
- 需要保证和 sshw 很好地融合,不会显得很突兀
- sshw 的跳板机制非常棒,需要用上
- sshw 的节点选择非常友好,需要用上
实操
代码的实现可以看 https://github.com/iamlongalong/sshw
展示一波
计划
目前,这个 scp 仅实现了最简单的 拷贝文件,但工作中,常有需要拷贝目录的情况,因此希望增加目录拷贝能力。
另外,一些大文件的拷贝过程比较慢,如果没有进度条的话……就等着抓狂吧😖……,因此希望增加拷贝的进度条。
- 增加拷贝进度条 ✅ 2022-11-08
- 增加目录拷贝 (再看吧,需求多了再弄)
ps
过程中有几个有意思的收获:
- golang 命令行选择工具 promptui
- golang 命令行进度条 progressbar
- golang 自动打包的方案 goreleaser
- 真正用上了 terminal 录制工具 terminal,其他可以参考 解决终端录制问题
A man’s growth is seen in the successive choirs of his friends
— Ralph Waldo Emerson
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!