我想知道是否有办法告诉 rsync 仅在文件列表中的所有文件传输成功时才应用更改(删除、覆盖、创建)。
只是为了澄清,这本质上是围绕转移进行交易。
我正在 Windows 和 Linux 系统之间同步一堆文件。由于并非所有 Windows 都关心大小写,因此 Windows 系统上的某些文件不再具有与 Linux 系统上相同的大小写。但是 rsync 现在将这些文件视为不同的文件并上传新副本。
是否可以让 rsync 忽略这种情况?
我们会定期将应用程序部署到位于中国(来自加拿大)的计算机。我们使用 Subversion 部署更改——我们说的是大约 100Mb 的差异。我们注意到速度很好,直到它们突然停止并最终超时。之后立即重试显示相同的超时。等待几个小时并重试将使下载继续进行,但最终会像第一次那样超时。
如果我们使用 FTP 传输文件,则一切正常。如果我们通过 rsync 传输,我们通常会遇到同样的问题。似乎任何传输差异信息而不是完整传输的内容都会导致问题发生。
我不知道这是中国强大的防火墙启动还是其他一些中间网络正在限制连接到杀死它的地步。
我有一个 Windows 7 机器和一个 Ubuntu 服务器,我需要在它们之间同步文件。我的计划是在 Windows 机器上使用在 cygwin 中运行的 Rsync,脚本如下:
cd E:/User/
rsync -avz --delete -e "ssh -p 2221" Pictures/* user@sub.host.com:/Path/to/Files/
rsync -avz --delete -e "ssh -p 2221" user@sub.host.com:/Path/to/Files/* Pictures/
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,rsync 会为每个文件或目录吐出这样的错误
rsync: recv_generator: fail to stat "/path/to/file/file.jpg": Permission denied (13)
rsync: recv_generator: mkdir "/path/to/file/": Permission denied (13)
Run Code Online (Sandbox Code Playgroud)
我通过 ssh 连接到服务器的用户有权drwxrwxrwx访问该目录(根据ls -la)。知道如何解决这个问题吗?
rsync 传输加密文件是否有效?进一步来说:
这有效率吗?我知道“x”的微小变化会导致“y”的巨大变化,但这种变化是局部的吗?或者 'y' 改变得如此彻底以至于 rsync 并不比 scp 好多少?
我目前通过每晚对它们进行 tarring/bzip 来备份我的“关键”文件,然后加密 .tar.bz 文件并将其同步到我的备份服务器。
许多单个文件不会更改,但是,当然,即使其中一个文件发生更改,tar 文件也会更改。
这有效率吗?我应该单独加密和备份每个文件吗?这样,未更改的文件将无需时间进行 rsync。
编辑以添加更多信息:
来源是我的家用机器。我拥有它并认为它是安全的。
目标是共置服务器。这是我的,但托管公司可以看到该机器硬盘上的任何/所有网络流量和任何内容。
源的可用空间很少。我不想通过在其上存储加密备份来将其空间减半。
目标空间很大。
基于这些新信息的任何想法?
我的 Linux 服务器上有两个数据硬盘驱动器,我使用第二个作为第一个驱动器的备份。
我为此目的使用rsync。一个例子是:
rsync -r -v --delete /media/disk1/ /media/disk2/
Run Code Online (Sandbox Code Playgroud)
它的作用是将每个文件/目录从/media/disk1/复制到/media/disk2/但同时删除任何差异。例如,假设文件 A 和 B 但不是文件 C 在disk1 上,而在disk2上没有 A 和 B 文件,但有 C。结果将是在disk2上的命令之后我有文件 A和 B,但文件 C 将被删除,就像在disk1 上一样。
现在,一个相当灾难性的场景出现在我的脑海中。如果 disk1 死机,系统会继续工作,因为系统文件在我的系统磁盘上,但是当 rsync 尝试从损坏的disk1备份我在disk2 上的数据时,它会删除所有文件disk2因为它无法读取disk1 上的任何内容。
这是一种可能的情况,还是在rsync 中对其进行了保护?
我试图找出一种使用 rsync(一次或多次)和可能的其他命令(例如 cp -lr)来完成以下操作的方法:
我知道的一些限制可能有助于找到解决方案:
我目前的解决方案是使用
rsync -av --link-dest C remote:A B
Run Code Online (Sandbox Code Playgroud)
但这有一个缺点,即附加文件被完全传输,体积增加了 10 倍以上。
欢迎对此解决方案进行任何改进,如果所有传输都使用 rsync 完成,效果会更好。
注意:使用几轮 rsync 来实现它是可以的,只要 C 没有改变,在这种意义上缺乏原子性就不是问题。
有没有一种增量同步 truecrypt 容器的好方法?我目前有大型容器 (200gb+),我想找到一种方法来备份它们而不必安装它们。Rsync 似乎无法增量同步,而是每次尝试重新传输整个容器,即使容器内只有一个文件发生更改。
是否有一些 rsync 补丁或某些特定选项可以使 rsync 看起来更难找出差异而不是传输整个文件?或者,有没有更好的工具来做到这一点?
使用cp、rsync或scp从故障硬盘复制文件时,无法再读取的故障文件也会部分复制到目标目录中。
是否有选项可以在复制时自动跳过或删除目标驱动器上导致输入/输出错误的文件?
我正在尝试使用 rsync 将数据从本地共享驱动器备份到删除服务器。本地机器和远程服务器都在 Windows XP 下运行 Cygwin。我使用以下命令:
rsync -aze ssh --size-only --delete //SharedFolder/dir/subdir user@remoteserver:/cygdrive/c/dir
问题是,不是将文件复制到 subdir 目录,而是创建了一个名为 subdir? 的新目录,其中 ? 是一个非 ascii 字符。我在目标或远程路径的末尾尝试了 / 的各种组合,结果总是相同。
如何告诉 rsync 不要创建这个奇怪的新目录?