网站搜索

Unison - 适用于 Linux 的终极本地/远程文件同步工具


文件同步是按照一定协议在两个或多个位置镜像文件和数据的过程。文件和数据是这个信息技术时代最有价值的东西。通过文件同步,我们确保在发生任何类型的灾难或需要在多个地点工作时始终可以使用一份或多份无价数据的副本。

一个好的文件同步器应该具有以下列出的功能:

  1. 加密同步,作为一种安全实现。
  2. 良好的数据压缩比。
  3. 一个完美的算法实现来检查数据重复。
  4. 跟踪文件源更改。
  5. 预定同步。

此类工具之一是Unison。在本文中,我们将详细讨论“Unison”及其特性、功能等等。

什么是齐奏?

Unison 是一款跨平台文件同步应用程序,可用于在两个或多个位置(计算机或存储设备)之间同步数据。

齐奏的特点

  1. 根据通用公共许可证 (GPL) 发布
  2. 开源和跨平台可用于(Linux、Unix、BSD、Windows、Mac)
  3. 无论上次修改的位置如何,都可以在不同的计算机上使用相同版本的文件。
  4. 可以实现跨平台同步,即 Windows 计算机可以通过 *nix 服务器进行同步。
  5. 通过标准协议 TCP/IP 进行通信,即可以通过互联网在任何两台机器之间进行通信,无论地理位置如何。
  6. 智能管理 – 当两个源上的文件被修改时显示冲突并将其显示给用户。
  7. 安全 SSH 连接 – 加密的数据传输。
  8. 这里部署了rsync算法,只传输修改的部分并覆盖。因此。执行和维护速度很快。
  9. 本质上坚固
  10. 用“Objective Caml”编程语言编写。
  11. 成熟稳定,无需主动开发。
  12. 它是一个用户级程序,即应用程序不需要超级用户特权。
  13. 它以其清晰、精确的规范而闻名。

在 Linux 中安装 Unison

当前的稳定版本(Unison-2.40.102)可以从以下链接下载:

下载 Unison 2.40.102 稳定版

或者,我们也可以使用 aptyum 命令下载并安装“Unison”(如果它在存储库中可用),如下所示。

在 Debian/Ubuntu/Linux Mint 上

使用“Ctr+Alt+T”打开终端并在终端上运行以下命令。

sudo apt-get install unison
在 RHEL/CentOS/Fedora 上

首先,启用 EPEL 存储库,然后使用以下命令进行安装。

sudo yum install unison

注意:上述命令将在没有GUI的情况下安装Unison。如果您需要安装具有 GUI 支持的 Unison,请使用以下命令安装“unison-gtk”软件包(仅适用于基于 Debian 的发行版)。

apt-get install unison-gtk

如何使用齐奏

Unison 用于将目录树中的一组文件同步到具有相似结构的另一个位置,该位置可以是本地主机或远程主机。

本地文件同步

让我们在桌面下创建 5 个文件,然后将其同步到主目录中名为“desk-back”的文件夹。

cd Desktop/
touch 1.txt 2.txt 3.txt 4.txt 5.txt
ls

1.txt 2.txt 3.txt 4.txt 5.txt
mkdir /home/server/desk-back

现在运行“unison”命令将桌面文件同步到主目录中的“desk-back”下。

unison /home/server/Desktop /home/server/desk-back/
样本输出
Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
/home/server/Desktop
/home/server/desk-back
This can happen either
because this is the first time you have synchronized these roots,
or because you have upgraded Unison to a new version with a different
archive format.
Update detection may take a while on this run if the replicas are
large.
Unison will assume that the 'last synchronized state' of both replicas
was completely empty. This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations. See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.
Donations to the Unison project are gratefully accepted:
http://www.cis.upenn.edu/~bcpierce/unison
Press return to continue.[]
...
...
Saving synchronizer state
Synchronization complete at 13:52:15 (5 items transferred, 0 skipped, 0 failed)

现在检查位置/home/server/desk-back,同步过程是否成功?

cd /home/server/desk-back/
ls

1.txt 2.txt 3.txt 4.txt 5.txt

远程文件同步

对于远程文件同步,您必须在本地和远程服务器上安装相同版本的 Unison。执行以下命令,验证本地unison是否可以启动并连接到远程unison服务器。

unison -testServer /home/ravisaive/Desktop/ ssh://172.16.25.125//home/ravisaive/Desktop/
样本输出
Contacting server...
[email 's password: 
Connected [//tecmint//home/ravisaive/Desktop -> //tecmint//home/ravisaive/Desktop]

以上结果表明远程服务器已成功连接,现在使用以下命令同步文件。

unison -batch /home/ravisaive/Desktop/ ssh://172.16.25.125//home/ravisaive/Desktop/

执行 GUI Unison

第一步是设置配置文件,这需要您设置基本信息,如配置文件名称、要同步的内容、源和目标位置等。

要启动 Unison GUI,请在终端上运行以下命令。

unison-gtk

创建配置文件并输入来源和目的地后,我们将看到以下窗口。

只需选择所有文件并单击确定即可。文件将根据上次更新时间戳从两个方向开始同步。

结论

Unison 是一个很棒的工具,它可以以任何方式(双向)进行自定义同步,可在 GUI 和命令行实用程序中使用。 Unison 兑现了它的承诺。这个工具非常容易使用,不需要额外的努力。作为一名测试人员,我对这个应用程序印象深刻。它有很多可以根据需要实现的功能。有关更多信息,请阅读一致手册。

另请阅读

  1. 文件的 Rsync(远程同步)
  2. Rsnapshot(基于 Rsync)文件同步器

目前为止就这样了。我很快就会再次在这里发表另一篇有趣的文章。在此之前,请继续关注并连接到 Tecmint。不要忘记在我们的评论部分向我们提供您的宝贵反馈。