用 Golang 重写 rsync(1):缘起 MAC
最近因为老头环的缘故,动了从 MAC 换回 PC 的心思。MAC 用了 10 多年了,MAC PRO 说起来用了第三个了,但还是连个游戏都不能好好的玩,说个有意思的事情,我最新这个 MAC 还是蝴蝶机制键盘,有一年因为物联网平台的事情,大冬天去化工厂出差,打开笔记本,死活敲不进去字,结果是因为键盘冻住了……
另外 MAC 的价格也是越来越贵了,再换要奔 2W+去了,另外,Windows 的使用环境感觉和 10 年前也换了很多。Powershell、WSL 等的加入,使得 Windows 下面 Golang 开发也越来越顺手,想了想,换了个幻 16。
Windows 下,近年来很多命令都和 Linux 基本一致了,我们常用的 ssh、docker、git 等都可以使用一样的命令来执行,甚至包括 ls 等命令也有了原生版本。
就是 rsync 总是用起来不太顺手。
rsync 在 windows 下面有几种选择,一个是安装 cwrsync,一个是安装 msys 子系统里的 rsync 命令,这两种方案都有一个很大的问题,就是 ssh 不是调用系统的命令,而是用的子系统自带的 ssh。这就造成了本来可以自动化运行的部署脚本,每次到这个地方都会被卡住输密码。
这事对我产生了极大的困扰,因为我一天要部署生产测试开发等不同环境无数次,每次都要我输一遍密码实在不能忍。
那既然 rsync 是 GNU linux 软件包的一个组件,于是我动了用 Golang 重新把 rsync 做一遍的念头。
这个专栏就用来记录过程中的情况,整个流程预计不会很短,毕竟平时主要还是做我的百家饭隐私计算平台。主要想借助这个事情,讲讲 Cgo、golang 和 C 的一些时期,且做且聊。
版权声明: 本文为 InfoQ 作者【百家饭隐私计算平台创业者】的原创文章。
原文链接:【http://xie.infoq.cn/article/d7bb70bef1419cf1c558edb43】。文章转载请联系作者。
评论