我有一个文件夹,里面有几个文件,网络服务器上还有一些空间。我想在修改时立即在linux中的本地文件夹和远程文件夹之间进行双向同步。我该怎么做呢?顺便说一句,我不能在服务器上安装任何东西,出于所有目的和目的,它仅仅是空间。
注意:我已经设置了rsa密钥对,因此它可以静默发生。
我有一个文件夹,里面有几个文件,网络服务器上还有一些空间。我想在修改时立即在linux中的本地文件夹和远程文件夹之间进行双向同步。我该怎么做呢?顺便说一句,我不能在服务器上安装任何东西,出于所有目的和目的,它仅仅是空间。
注意:我已经设置了rsa密钥对,因此它可以静默发生。
Answers:
如果已安装在服务器上,请使用rsync
它的构建来完成该工作。
要使其双向获取(从http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1285799008594+28353475&threadId=1278777引用):
要双向同步的目录/src/foo
上hostA
,以/dest/foo
对hostB
,包括所有的子目录,你会在运行这些命令 hostA
:
rsync -auz /src/foo hostB:/dest
rsync -auz hostB:/dest/foo /src
第一个命令将所有较新的文件推hostA
送到hostB
。
第二个命令将拉都属于较新的文件hostB
到hostA
。关键选项是:
复制时,必须保留文件修改时间。-a
做这个和其他事情;
如果只想保留修改时间,请-t
改用。
要跳过目标上较新的文件:-u
这样做。
每次需要在两个文件夹之间进行同步时,这rsync
是一个非常灵活的选择。问题是,rsync不支持ftp协议。一个不错的解决方法是curlFtpFS:
CurlFtpFS是用于基于FUSE和libcurl访问FTP主机的文件系统。
使用curlFtpFs可以很容易地在文件系统中包含一个远程ftp文件夹。
这是一个简短的示例,显示了这两种工具的用法:
curlftpfs -r -s ftp.foobar.com /foo
rsync -a /foo/ /bar
umount /foo
阅读手册页以获取更多信息。
如果您不想花大力气安装curlFtpFS,而只是想保持某些文件同步,那么有很多ftp工具提供了这样的同步功能: