Tag Archives: Rsync

AIX 上配置 rsync 简记

前提: OpenSSH 配置完毕。并且,目标端到源端通过 SSH 登录无需提示密码验证. (参见我以前的也是关于 rsync 的废话)

下载 AIX 5L Expansion Pack CD 中的 rsync,这个版本稍微有点低。其实也足够了,不过如果和更高版本混用的话,会报告另外一个错误

sync: connection unexpectedly closed (24 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) ...

在 AIX 上 rsync 需要依赖 Popt–A C library for parsing command line parameters,通过 rpm 命令安装即可. 现在的 AIX 系统默认应该就有安装 rpm (AIX-rpm) 工具包的.

在维基百科上 有 对 rsync 算法的介绍。简单的理解是这么回事:待传送的文件被分成若干定长的文件段,然后对每个文件段做个 “Rolling Checksum”,加上一个强 MD4 校验码, 传送这些信息给接收方, 接收方查找本地类似文件–定长的每个文件段, 对比 Rolling Checksum 与 MD4, 然后传送差异(Delta)数据.

rsync 1996 年才被搞出来,最初是用来对付在低速网络连接上传送差异化文件的。

我一直比较好奇的是 Oracle 的 Data Guard 用什么算法保证所有的归档能无差错传送到远地(?)。

EOF

用 Rsync(cwRsync)备份 Dreamhost 到 Windows 上

因为这次 Dreamhost 的安全问题,不得不考虑调整站点备份的周期。备份方式是利用 cxRsync 通过 SSH 通道备份数据到本地 Windows 上。Rsync 在 Windows 上的实现有好几个包装好的工具,比如 DeltaCopyUnison 等。经过比较还是觉得 cxRsync 最好用.

cwRsync 的优点:

1) 配置简单。已经包装了 crgwin 库文件,下载安装就能直接调用命令进行同步。
2) 命令行即可操作. 与 Unix 上基本一样(DeltaCopy 则是图形化的,Unison 还需要熟悉后才可以)。

基本操作步骤:

1) 下载,安装 cwRsync.
2) (可选, Dreamhost 的安全都这样糟了,还不如直接用密码登录安全呢,嘿)创建 Key, 进入命令行模式, 调用 ssh-keygen 命令创建 Key. 公钥和私钥存储的位置就放在默认的位置即可。完成后将公钥串存入 ~/.ssh/authorized_keys 文件内。
3) 进入命令行模式, 调用 rsync 命令:

rsync  --exclude="/home/foo/tmp/" -avz [email protected]:foobar.net/ \ 
MySites\www.foobar.net\

说明: –exclude 过滤掉一些无关紧要的目录,比如 MT 目录下的 Cache 信息等,foo 和 foobar 请根据自己的情况做适当的替换。

最后,如果喜欢用 Windows 的任务调度的话,可以考虑调用。反正我是从来不用的。

EOF

Rsync 与 OpenSSH 结合运用进行文件同步

面临的需求:在两个服务器之间进行安全的文件同步。首选的方法用 rsync ,如何与 SSH 集成在一起呢 ? 我以前还真的没试验过。到 del.icio.us 上查找. 现在如果查找技术文档,del.icio.us 成了我的首选资料库,只要被人收录的文章,基本上质量都不错。
实现起来还是相对比较简单的。
1 安装 rsync.
我的操作系统是 AIX ,到 IBM 的站点下载软件.可以直接用 RPM 工具包远程安装。
2 创建公钥并配置
为了避免每次都询问口令(假定 OpenSSH 已经安装就绪),需要创建密钥。用 ssh-keygen 工具。然后把公钥添加到 rsync 的 Server 端相关用户目录下的 .ssh/authorized_keys 文件中。
关于这个过程,前几天看到一段很浅显的解释,稍加改编一下:

SSH 告诉远程 Server 端的 sshd ,它想使用 RSA 认证协议…远程的 sshd 会生成一个随机数,并用我们先前拷贝过去的公钥对这个随机数进行加密。然后, sshd 把加密了的随机数发回给正在 本地服务器上运行的 ssh 。接下来,我们的 ssh 用 专用密钥对这个随机数进行解密后,再把它发回给远程服务器,类似于声明一下:“瞧,我真的有匹配的专用密钥;我能成功的对您的消息进行解密!”最后, 远程 sshd 得出结论,既然人家真的有该专用密钥,就应当让人家登录。因此,我们有匹配的专用密钥这一事实授权我们访问远程服务器

继续阅读