在 Linux 中将本地目录与远程目录同步

And*_*edd 14 rsync synchronization

我有一个文件夹,里面有几个文件,还有一些网络服务器上的空间。我想在 linux 中的本地文件夹和远程文件夹之间进行双向同步,只是在修改时间。我该怎么做呢?顺便说一句,我无法在服务器上安装任何东西,出于所有意图和目的,它只是空间。

注意:我已经设置了 rsa 密钥对,因此它可以静默发生。

Gil*_*il' 12

单向同步的首选工具是 rsync ,双向同步的首选工具是Unison。两者都要求可执行文件在双方都可用。如果您可以在服务器端使文件可执行,请删除一致二进制文件并使其可执行。

如果您在本地使用 Linux、*BSD、Solaris 或 Mac OS X,您可能可以使用FUSE文件系统使 Web 服务器空间显示为本地文件系统 — sshfs应该可以工作,因为您似乎具有 ssh 访问权限。然后在“本地”使用统一。

另请注意,大多数版本控制软件(CVS/Subversion 以及分布式 VCS)都将同步作为附带功能(在一台机器上签入,在另一台机器上签出)。


tan*_*nte 5

如果它安装在服务器上,请使用rsync它的构建来完成该工作。

要使其双向,请执行以下操作(引用自http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1285799008594+28353475&threadId=1278777):

要将目录双向同步/src/foohostAon ,包括所有子目录,您可以在 上运行以下 /dest/foo命令:hostBhostA

rsync -auz /src/foo hostB:/dest 
rsync -auz hostB:/dest/foo /src
Run Code Online (Sandbox Code Playgroud)

第一个命令将所有较新的文件推hostA送到hostB.

hostB第二个命令将把所有较新的文件拉到hostA. 关键选项是:

复制时,必须保留文件修改时间。-a做这件事和其他事情;

如果您只想保留修改时间,请改用-t

要跳过目标上较新的任何文件:-u执行此操作。