标签: rsync

在 Windows 中进行复制时,我可以回答“全部不”吗?

在 Windows 下复制/合并大型目录结构时,是否可以执行类似“全部是”但相反的操作,以便不会覆盖所有现有文件?

使用诸如 之类的工具时有类似的功能rsync,但这不是 Windows 上的本机进程。

windows file-management rsync merge

4
推荐指数
1
解决办法
621
查看次数

rsync:如何在没有错误的情况下复制可能不存在的文件

我的 Makefile 中有一个命令可以从外部源同步我的书目。如果rsync因为目标文件不存在而失败,则rsync退出并显示错误 23。我可以通过将输出传递到来隐藏错误,/dev/null但这仍然会导致我的 Makefile 退出。如何"Hi"$(bib_dir)不存在的情况下输出以下 Makefile 代码?

sync_bibliography:
    rsync $(bib_dir) bib 2>/dev/null
    echo "HI"
Run Code Online (Sandbox Code Playgroud)

rsync make

4
推荐指数
1
解决办法
2074
查看次数

rsync 一个已经压缩的文件

如果输入文件已经被 gzip 压缩, rysnc -z 是否有任何压缩优势?我有一个 100GB 的大压缩文件要通过网络跨服务器发送,并且在不同的时间后始终失败(管道损坏)。想知道我是否应该尝试 -z 标志。

compression rsync

4
推荐指数
1
解决办法
8697
查看次数

如何通过网关 ssh 进行 rsync?

我想将我的本地文件与我在服务器上的备份进行 rsync,该备份允许仅通过网关从我现在所在的位置进行访问。所以我想出了以下内容

rsync -avz -r --stats --progress -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" /home/myname/documents 
Run Code Online (Sandbox Code Playgroud)

并且在列出所有文件时正在进行一些通信,但在最后的摘要中显示实际上根本没有文件传输。

Number of files: 270889
Number of files transferred: 0
Total file size: 70343212868 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 7596005
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 7613770
Total bytes received: 17764

sent 7613770 bytes  received 17764 bytes  50707.87 bytes/sec
total size is 70343212868  speedup is …
Run Code Online (Sandbox Code Playgroud)

ssh rsync

4
推荐指数
1
解决办法
3106
查看次数

rsync 从一个磁盘到另一个磁盘的慢速复制

我有两个相同型号的驱动器,它们使用 SATA 连接。

使用 对读取速度进行基准测试时hdparm -t /dev/sdX160MB/s会返回大约速度。使用 对写入速度进行基准测试dd if=/dev/zero of=testfile bs=1M count=500 conv=fdatasync时,140MB/s返回大约速度。

但是,当使用 复制单个 10GB 文件时rsync --progress /mnt/hd1/file /mnt/hd2/file,写入速度仅为35MB/s.

为什么这么慢?我怎样才能让它更快?

linux performance rsync ubuntu-12.04

4
推荐指数
1
解决办法
8074
查看次数

gzip --rsyncable 的注意事项 - 没有加速

我正在使用(尝试)gzip 以可同步的方式压缩 SQL 文件,以便以最小的延迟传输备份。

然而,这似乎不起作用,因为加速总是 1.00。

存档是通过将数据库转储到.sql文件然后发出gzip -f3 --rsyncable file.sql.

接下来,远程机器使用以下标志对上次备份执行 rsync:

rsync -avhhiP --inplace

为什么我的加速比可能是 1.00?我不应该每次都重新创建存档,而是更新它吗?我在有关 --rsyncable 标志使用的在线指南中没有看到此方法的提及。

我在用:

# gzip -V
gzip 1.5
Run Code Online (Sandbox Code Playgroud)

rsync gzip

4
推荐指数
1
解决办法
4659
查看次数

Linux:从损坏的 HD 复制的最佳方法是什么,只复制可以完全读取的文件?

我正在从损坏的 HDD(不是 SDD)复制,其中大约 15% 的文件会导致 I/O 错误。我只想要剩下的 85% 完整文件,并获得损坏文件的列表。怎么做?

cp 在第一次读取错误时停止。scp/rsync 抱怨并删除副本(想要)并退出(不需要)。出现 I/O 错误后无法继续,至少通过阅读 rsync(1) 手册找不到。

我谷歌了很长时间,所有帖子都是关于其他需求的:

  1. 告诉海报IO错误意味着硬盘损坏(我知道);
  2. 告诉发布者一种复制单个文件好的部分的方法,用零填充损坏的数据(我有 100k 个文件,每个文件都小于 10KB,损坏的文件对我来说没有用,即使只丢失了一个字节);
  3. 告诉海报如何重复运行 rsync(通过网络)以对抗不良连接并完成复制。
  4. 告诉海报如何更改默认超时,让 rsync 更努力地读取文件(我不想这样做)
  5. 告诉发布者运行 fsck 来修复文件系统错误。

感谢您阅读不需要的答案列表!

注意:这是一个物理损坏的磁盘,由适当的诊断工具确认。我也运行了一个彻底的 fsck。

linux hard-drive rsync file-transfer command-line

4
推荐指数
1
解决办法
9765
查看次数

通过 ssh 隧道同步目录

我有 3 台计算机/服务器,我们称它们为计算机 A、计算机 B 和计算机 C。

  • 计算机 A 可以通过ssh计算机 B访问。
  • 只有计算机 B 可以通过ssh计算机 C访问。
  • 计算机 A 无法直接访问计算机 C。

所以,我想rsync从计算机 A 到计算机 C 的目录,使用计算机 B(因为只有计算机 B 可以通过ssh计算机 C访问)。我想以rsync一种简单的方式使用,如下所示:

rsync -options /path_to_local IpComputerC:/path_to_remote
Run Code Online (Sandbox Code Playgroud)

我正在考虑一个ssh隧道,但我不知道我是否必须进行本地端口转发或远程端口转发,或者是否必须创建两个隧道:一个从 A 到 B,另一个从 B 到 C?

有什么建议??我真的很感激。

**更新:我做到了!!我创建了一个带有本地端口转发的 ssh 隧道,这意味着我使用机器 A 的本地端口通过机器 B 连接到机器 C 上的远程端口。命令的语法是:

ssh -f -N -L local_port_machineA:ip_machineC:remoteport_machineC user_machineB@ip_machineB
Run Code Online (Sandbox Code Playgroud)

在我的情况下,remoteport_machineC 应该是端口 22,因为我想通过 ssh rsync 目录。

之后,我们就可以在机器A上执行rsync命令了,这样:

rsync -avz -e "ssh -p local_port" …
Run Code Online (Sandbox Code Playgroud)

networking ssh rsync

4
推荐指数
1
解决办法
8561
查看次数

您如何让 rsync 从文件中加载(完整规则,不限于 --include-from)过滤规则列表?

rsync有多种选项可以从文件中读取各种配置,这样您就不必将一堆个人--include--exclude选项链接在一起。所有这些选项(据我所知)从本地计算机上的文件中读取: --exclude-from=FILE --include-from=FILE --files-from=FILE

文档--files-from=FILE甚至澄清您可以将它与本地或远程文件一起使用:

此外,如果在文件前面指定“host:”(主机必须与传输的一端匹配),则可以从远程主机而不是本地主机读取 --files-from 文件。作为快捷方式,您可以仅指定前缀“:”来表示“使用传输的远程端”。

我想知道的是哪里或什么是等价物--filter?我们有--include--include-from; --exclude--exclude-from。但在哪儿--filter-from(或者最接近的等价物是什么?)

本节上包含/排除模式规则给出了一个使用的模式规则列表中,就好像它们是包含在文件的例子...

          + /some/
          + /some/path/
          + /some/path/this-file-is-found
          + /file-also-included
          - *
Run Code Online (Sandbox Code Playgroud)

但我能找到的在文件中使用它们的唯一提及是使用从 amerge或加载的文件dir-merge

          merge, . specifies a merge-file to read for more rules.
          dir-merge, : specifies a per-directory merge-file.
Run Code Online (Sandbox Code Playgroud)

我找不到任何提及它是指本地主机还是远程主机上的合并文件,但从我到目前为止的尝试来看,它似乎只适用于远程主机上的文件。

rsync

4
推荐指数
1
解决办法
2688
查看次数

rsync: mkstemp "<filename>" 失败: 功能未实现 (38)

尝试rsync转移时,出现以下错误:

rsync: mkstemp "<filename>" failed: Function not implemented (38)

rsync实际上并没有传输它列出的文件 --progress: 随后的rsyncs 再次从头开始。

目标文件系统是 FAT。

rsync fat32 exfat

4
推荐指数
1
解决办法
3509
查看次数