我有一个文件夹,其中有一些文件,并且网络服务器上有一些空间。我想在Linux中的本地文件夹和远程文件夹之间进行双向同步,仅在修改时进行。我该怎么做呢?顺便说一句,我无法在服务器上安装任何东西,出于所有意图和目的,它只是空间。
注意:我已经设置了 rsa 密钥对,这样它就可以悄悄地发生。
答案1
答案2
如果它安装在服务器上,请使用rsync
它的构建来完成该工作。
要使其双向,请执行此操作(引用自http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1285799008594+28353475&threadId=1278777):
要将目录双向同步/src/foo
到hostA
on /dest/foo
,hostB
包括所有子目录,您可以在 上运行以下命令 hostA
:
rsync -auz /src/foo hostB:/dest
rsync -auz hostB:/dest/foo /src
第一个命令将所有较新的文件推hostA
送到hostB
.
第二个命令将把所有较新的文件hostB
拉到hostA
.关键选项是:
复制时,必须保留文件修改时间。-a
做这件事和其他事情;
如果您只想保留修改时间,请改用-t
。
要跳过目标上较新的任何文件:-u
执行此操作。
答案3
每次您需要在两个文件夹之间同步时,rsync
这是一个非常灵活的选择。问题是,rsync 不支持 ftp 协议。一个很好的解决方法是卷曲FTPFS:
CurlFtpFS 是一个基于 FUSE 和 libcurl 的用于访问 FTP 主机的文件系统。
使用curlFtpFs 可以很容易地将远程ftp 文件夹包含在您的文件系统中。
这是一个简短的示例,显示了这两种工具的用法:
curlftpfs -r -s ftp.foobar.com /foo
rsync -a /foo/ /bar
umount /foo
请阅读联机帮助页以获取更多信息。
如果您不想费力安装curlFtpFS而只想保持一些文件同步,有很多提供此类同步功能的ftp工具:
- FTPSync.pl- 简单的 PERL 脚本来保持本地和远程目录同步
- 威克斯- 用于更新网页的非交互式 FTP 客户端
- 菲勒齐拉- 具有多种功能的 GUI FTP 客户端
- ...