rsync_rsync系列

如果同时使用便携式计算机和台式计算机,则必须同步计算机以使其保持最新状态。 另外,您可能不仅要在家中运行同步,还要从远程站点运行同步。 就我而言,每当我带着笔记本电脑旅行时,请确保将我在笔记本电脑上所做的一切都备份到台式计算机上。 (丢失笔记本电脑,从而失去所有工作根本不好!)存在针对此问题的许多解决方案:本文介绍了一种这样的工具rsync并提到了几个相关的工具,所有这些工具都提供了简单的同步过程。

什么是rsync?

rsync实用程序是一个文件传输和同步程序,可广泛用于Linux®和UNIX®,甚至移植到Windows®。 它的关键功能是非常快速的算法,该算法仅通过数据链接发送文件差异,从而最大程度地减少了机器之间的总数据流。 (如果使用文件传输协议[FTP]或rcpscp实用程序,即使仅更改了一个字节,也会发送完整的文件。)当然, rsync不仅限于现有文件:它也可以处理文件和目录可能只出现在链接的一端。 最后,通过压缩数据来优化通信,因此即使没有宽带连接也可以使用该工具。

获取和安装rsync

您可以获得大多数当前Linux发行版的预编译二进制软件包,这是您应该检查的第一件事。 我将Smart用于OpenSUSE的软件包管理,而安装rsync的最新版本只需要sudo smart install rsync即可。 如果您是所有编译的忠实拥护者,则可以获取源代码(请参阅参考资料中的链接),并使用经典的configure, make, make install方法configure, make, make install 。 请查看随附的自述文件以获取详细说明。

为了进行安全通信,您将需要安装安全外壳(ssh)。 (您可以使用远程shell [rsh],但它的安全性还差得远。)OpenSSH是ssh的免费实现,通常在所有发行版中都可用。 您还需要在防火墙中打开一个端口,以便您的计算机可以相互连接。 所有这些配置是标准的:检查相关主题的更多信息的链接。

使用rsync

因此,让我们开始使用rsync并将笔记本电脑与远程服务器直接同步。 为此,您可以使用类似于清单1所示的代码。 您还可以将远程服务器同步到便携式计算机(文件将从服务器发送到便携式计算机),甚至同步两个本地目录,但不能同步两个远程服务器。

清单1.相同的完整rsync命令的两个版本
rsync --compress --recursive --delete --links \
--times --perms --owner --group \
--verbose --progress --stats \
--rsh="ssh" \
--exclude "*bak" --exclude "*~" \
/my/path/at/the/laptop/* myserver:/some/path/at/the/server

rsync -zrltpogve "ssh" --progress --stats --delete \
--exclude "*bak" --exclude "*~" \
/my/path/at/the/laptop/* myserver:/some/path/at/the/server

请注意,清单1中选项的顺序是任意的,并且大多数版本都较短。 首先,-- --compress (可选: -z )指定将压缩数据,从而节省进程带宽。 您应该始终包括此选项。 (可以说,在非常高速的数据链接上,您可能不需要压缩,但是对于大多数远程连接链接,压缩会有所帮助。)补充选项--compress-level= level可用于指定不同的选项。压缩程度; 但是,标准压缩级别通常是可以接受的。

--recursive-r )选项使rsync递归复制所有目录。 目录中的所有文件,包括可能的其他目录及其自身的内容,都将被复制。 如果您恰巧不需要此功能,则--dirs选项( -d )提供相反的效果:目录及其内容将被跳过。

默认情况下, rsync所需的文件复制到目标计算机,但不会在此删除其他文件。 通过使用--delete选项,目标目录将与原始目录完全相同。 但是请小心:如果您碰巧将空文件与远程目录同步,则将删除远程计算机目录中的所有内容!

如果原始目录中有符号链接,则--links选项(也为-l )在目标目录中重新创建这些符号链接。 或者,-- --copy-links-L复制symlink指向的项目,而不是symlink本身。 如果符号链接指向复制的树的外部(存在安全风险),则可以使用--copy-unsafe-links--safe-links选项提供了一种更安全的方法,忽略了此类链接。

接下来的四个选项- --times--perms--owner--group-tpog -make rsync分别保持原来的更新时间戳,权限,所有者和组的详细信息。 指定所有这些选项的更简单方法是使用--archive-a ,它还会设置--recursive--links选项。

以下三个选项( --verbose ,-- --progress--stats )提供了有关rsync在做什么的大量信息。 如果您不感兴趣,请跳过它们,除非出现错误,否则rsync将保持安静。

尽管当前的rsync版本默认使用ssh,但是--rsh (或-e )选项可让您强制使用它。 如果碰巧需要ssh额外的参数(例如,如果您已将ssh设置为使用非标准端口),则可以添加它们,如--rsh "ssh -p 12345"

--exclude选项(及其兄弟姐妹--include )使您可以选择哪些文件进行同步。 在此示例中,我排除了常见的备份文件。 根据需要排除并包括文件,以优化发送的内容。

最后,指定源路径和目标路径,您就完成了! 不要忘了最后的/* ,否则结果可能不理想。 如果查看文档,则可以发现some / path,some / path /和some / path / *之间的区别。 但是使用/*是最安全的方法。

您可以使用-a选项( --archive )来缩短清单1中的命令,如清单2所示。 (对于纯粹主义者, -a选项可以复制一些额外的元素(请参阅文档),但仅当您在服务器中以root用户身份运行rsync ,这绝对不是一件安全的事。) 检查rsync --helpman rsync以获得完整列表。

清单2.相同命令的更简短,更安静的版本
rsync -zae "ssh" --delete --exclude "*bak" --exclude "*~" \
/my/path/at/the/laptop/* myserver:/some/path/at/the/server

图形替代

如果您希望使用图形用户界面(GUI)而不是命令行,则有多种可能。 但是,您应该记住,没有“完美的替代品”,并且应该在进行任何特定程序之前进行一些彻底的测试。 一些程序正在开发中(尽管看起来很有趣,可以将它们包括在本评论中),而某些程序的功能更高级。 (还有一些古怪的东西,作为警告,我将其包括在内!)

GAdmin-Rsync

GAdmin-Rsync(如图1所示)是Gadmintools软件包的一部分,该软件包是用于Linux系统管理的一组GPL许可的GUI工具。 它的最新版本从2009年1月开始的0.1.1令人惊讶地低,而先前的版本是从2008年6月开始的0.1.0。安装非常简单:如果找不到可分发的软件包,则只​​需下载源代码并运行简单的./Autoinstall过程。

图1.尽管其版本号较低,但GAdmin-Rsync的界面仍需进一步开发,但仍有望实现良好的功能。
Gadmin同步

一个小惊喜是该程序需要root密码。 称我具有安全意识,但除非有必要,否则我当然不喜欢以root用户身份工作。 对于root用户,错误通常代价更高!

首次使用此工具时,它将询问有关要运行的备份的详细信息。 GAdmin-Rsync允许您定义多个备份,因此更容易重新运行它们。 您需要指定备份的类型(本地到本地,本地到远程或远程到本地)以及适当的目录和服务器数据。 但请注意:我没有找到一种方法来编辑服务器参数,因此要修复它们,将需要创建一个新的备份-不太用户友好。 我还遇到了另一个问题:该程序将不接受无密码的连接。

GAdmin-Rsync中没有多余的装饰。 例如,您不能仅执行“空运行”。 相反,有一种简单的方法可以指定要在以后运行的cron作业。 此功能可能反映了该程序的“面向根”的思想:它不是针对临时用户的,而是针对系统管理员的。 (“帮助”功能对此表示赞同:它只是说“如何使用GAdmin-Rsync进行备份:请访问http://www.gadmintools.org”,仅比“ RTFM”注释高出一个档!)取决于此程序的多少取决于您对系统管理员一心一意,但这很有用。

Grsync

Grsync(如图2所示)是用于rsync的基于GTK的GUI,但不仅限于Gnome。 它的最新版本是2008年12月发布的0.6.2,这意味着该程序仍受支持并且正在开发中。 其最有趣的功能包括:

  • 将设置保存为“会话”,以便您可以轻松地重新运行备份过程。
  • 在实际提交备份之前允许进行“模拟”(空运行)。
  • 在备份作业之前和之后执行其他命令。
  • 例如,包括一个命令行版本grsync-batch ,它使您可以从cron计划的运行中运行Grsync会话。
图2. Grsync并没有提供太多底层rsync命令的选项,但是它非常有用且稳定。
Grsync

在主页上(请参阅参考资料中的链接),您将仅找到源代码,如果您具有GTK和Autotools,则可以自行编译。 但是,您可以找到适用于许多发行版的现成二进制文件,包括OpenSUSE,Mandriva,Red Hat(以及Fedora和CentOS)等等。 Grsync只是一个前端,因此它不包括rsync :您必须首先自己安装它。

并非所有rsync功能都可用,但是对于大多数用户而言,所包含的选项就足够了。 如果需要某些内容,请单击“ 高级选项”选项卡,然后您可以添加所需的任何选项。 但是,请谨慎使用语法:如果您犯了一个错误,Grsync不会抱怨,但是rsync会抱怨,并且在您尝试执行备份时会收到错误消息。 除此之外,该软件包还非常实用且稳定-可能是我查看过的所有GUI中最好的。

QSync和TKsync

QSync是基于Qt的界面,但是从2005年12月起,它的开发似乎已经停止在0.3版中。我不推荐使用此工具:它需要自己的rsync版本,因此不会使用您特定的最新版本。 -date rsync软件包,而是命令的内部(一定是旧版本)。 我下载了一个OpenSUSE软件包,但它无法运行,并且坦率地说,尝试为看似已废弃的软件包尝试自定义构建似乎并不值得。 作者本人(在2003年)承认“ QSync的同步部分还不太正确”,并且由于此后没有进行任何更新,因此有理由认为该问题尚未解决。

rsync GUI运行Google搜索可能会导致您转到另一个项目TKsync,该项目的最新版本(0.2.1)于2004年发布。但是,搜索未能获得(显然已删除)项目页面。 因此,称此项目为死是相当安全的。 如果碰巧找到一个安装软件包,最好不理会它。

Zynk

即使Zynk(显然)处于其开发周期的开始,该程序看起来也很有希望提及。 另外,您可能会找到几个发行版的版本,并且应了解其(当前)限制。 最后,请注意Zynk是一个GTK +应用程序,但是可以在没有Gnome的情况下运行。 特别是,我在K桌面环境(KDE)下运行测试。

关于开发状态,Zynk当前是2009年2月发布的0.0.2版,作者本人警告说:“目前有数百个错误!只有部分软件可以按预期运行!请自担风险! ” 据他估计,该程序仅完成了大约10%,尽管看上去比它更完整, 如图3所示。

图3. Zynk处于开发周期的开始,但看起来很有希望。
Zynk

Zynk显然提供了大多数(如果不是全部) rsync选项。 (顺便说一下,您需要预先安装rsync 。)在窗口底部,您可以看到将要执行的命令及其输出。

运行了一些测试之后,我必须同意该程序需要做更多的工作。 但是与QSync不同,似乎开发正在进行中,因此该程序实际上有可能变得可用。

结论

rsync实用程序是命令行工作中必不可少的工具,您需要学习如何使用它来实现轻松,安全,快速的笔记本电脑-桌面同步。 如果您更需要GUI,Grsync似乎是当今最好的选择,因为QSync已经过时,而且GAdmin-Rsync和Zynk都处于开发周期的开始。


翻译自: https://www.ibm.com/developerworks/aix/library/au-rsyncfamily/index.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值