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 得出结论,既然人家真的有该专用密钥,就应当让人家登录。因此,我们有匹配的专用密钥这一事实授权我们访问远程服务器

3 测试是否可正常运行

rsync -av  -e ssh remote_host:/opt/backup /backup/

注:很多文档都提及需要Server端的 Demon 需要启动,如果通过 ssh 的方式是不用的。更为灵活一些。
BTW: Lou Fangxin 提示我说采用压缩方式传输会更节省网络带宽。

4 定制 Crontab ,使得任务自动化运行.

参考文档:

| | TrackBacks (0) | | Edit

Generator | Trampoline



自定义搜索

本文相关评论|Comments(4)

anysql 的评论:

这是因为rsync默认的选项还是rsh模式, 如果自已编译一下, 可以改这个选项的.

rainy 的评论:

我们公司内部就是有一个perl写的小工具用openssh和rsync,来发布测试机器的文件内容到生产机器的

Fenng Author Profile Page 的评论:

压缩的方式其实有的时候更慢 :)

anysql 的评论:

压缩方式慢可能是因为主机的CPU不够. 网络不好时, 压缩很有用的.

添加评论

关于这篇文章

这篇文章由 Fenng 于 January 12, 2006 12:10 PM 发布

上一篇:赛迪网涉嫌抄袭我的 Blog 内容

下一篇:几个软件更新以及其他

回到首页查看最近的文章或者是查看所有归档文章

DBA notes 的订阅数量,点击则可进行订阅
Feed 订阅数量,点击即可订阅最新内容