标签: rsync

复制没有空目录的目录树?

我有以下树

# upper letters = directory
# lower letters = files
A
|-- B
|-- C
    |-- D
    |-- e <= file
|-- F
    |-- G
Run Code Online (Sandbox Code Playgroud)

我需要将此树复制到另一个目的地,递归地忽略所有空目录。所以目的地最终看起来像:

C
|-- e
Run Code Online (Sandbox Code Playgroud)

你会如何用 unix、rsync 等来做到这一点?

unix filesystems synchronization rsync

25
推荐指数
1
解决办法
2万
查看次数

将 LVM 快照同步到备份服务器

我有许多 Xen 虚拟机在许多 Linux 服务器上运行。这些 VM 将其磁盘映像存储在 Linux LVM 卷中,设备名称类似于 /dev/xenVG/SERVER001OS 等。我想对这些磁盘映像进行定期备份,以便在需要时恢复 VM(LVM 设备已经在两台物理机之间使用 DRBD 进行了镜像,我只是在这里特别偏执)。

我该怎么做?显然,第一步是对 LVM 设备进行快照,但如何以最有效的方式将数据传输到备份服务器?我可以简单地复制整个设备,大致如下:

dd if=/dev/xenVG/SERVER001OS | ssh administrator@backupserver "dd of=/mnt/largeDisk/SERVER001OS.img"
Run Code Online (Sandbox Code Playgroud)

...但这会占用大量带宽。是否有类似 rsync 的工具用于在远程服务器之间同步整个磁盘块的内容?就像是:

rsync /dev/xenVG/SERVER001OS backupServer:/mnt/largeDisk/SERVER001OS.img
Run Code Online (Sandbox Code Playgroud)

如果我正确理解了 rsync 的手册页,上面的命令实际上不会起作用(会吗?),但它显示了我的目标。我知道 --devices rsync 选项是复制设备本身,而不是这些设备的内容。在与远程服务器同步之前制作 VM 映像的本地副本不是一种选择,因为没有磁盘空间。

是否有一个方便的实用程序可以在块设备和远程服务器上的备份文件之间进行同步?如果需要,我可以写一个,但现有的解决方案会更好。我是否错过了为我执行此操作的 rsync 选项?

linux backup rsync virtual-machines lvm

24
推荐指数
4
解决办法
4万
查看次数

我可以使用相同的文件列表 rsync 到多个目的地吗?

我想知道 rsync 是否有可能将一个目录一次性复制到多个远程目标,甚至并行复制。(不是必需的,但会很有用。)

通常,类似以下的内容会正常工作:

$ rsync -Pav /junk user@host1:/backup
$ rsync -Pav /junk user@host2:/backup
$ rsync -Pav /junk user@host3:/backup
Run Code Online (Sandbox Code Playgroud)

如果这是唯一的选择,我会使用它。然而,/junk 位于一个包含相当多文件的慢速驱动器上,与实际传输/更新相比,每次重建大约 12,000 个文件的文件列表非常缓慢(大约 5 分钟)。是否有可能做这样的事情,完成同样的事情:

$ rsync -Pav /junk user@host1:/backup user@host2:/backup user@host3:/backup 
Run Code Online (Sandbox Code Playgroud)

backup rsync

24
推荐指数
3
解决办法
4万
查看次数

rsync 只是挂起,正在构建文件列表

[root@centos /]# rsync -av --exclude thumbs /storage root@xx.27.1.xx:/storage
root@xx.27.1.xx's password: 
building file list ... 
Run Code Online (Sandbox Code Playgroud)

我已经坐了大约一个小时......它有 135GB 的图像和文件夹

/storage 是一个已安装的 ext3 scsi 驱动器。

rsync 长时间计算文件/目录是否正常?

rsync

23
推荐指数
3
解决办法
4万
查看次数

Rsync 似乎与 .bashrc 不兼容(导致“你的外壳干净吗?”)

事实证明 rsync 无法与具有 .bashrc 文件的远程服务器一起使用?

在本地客户端运行 rsync 时得到:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(180) [sender=3.0.7]
Run Code Online (Sandbox Code Playgroud)

正如这里建议的那样删除服务器上的 .bashrc 解决了这个问题。如何在不删除 .bashrc 文件(临时)的情况下解决它?

bash rsync

23
推荐指数
4
解决办法
4万
查看次数

使用 Rsync 备份到外部驱动器

我正在购买一个外置硬盘来备份我家中的计算机(终于!!)。我希望使用 rsync。我看过一个例子,它确实(或似乎)完全符合我的要求。像这样的东西:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups
Run Code Online (Sandbox Code Playgroud)

然而,当查看 rsync 文档和示例等时,事情开始看起来比这复杂得多。网络、守护进程和行话,天哪!

我假设只要我只是从计算机同步到火线连接的外部驱动器,就不需要这些东西。我的假设是错误的吗?事情真的会比那个无害的命令更复杂吗?

backup rsync

22
推荐指数
2
解决办法
7万
查看次数

获取 rsync 以生成补丁文件而不是跨文件复制?

我正在使用 rsync 将大量已更改的文件从一台服务器复制到另一台服务器。我知道我可以使用该-n选项进行试运行,因此我可以查看哪些文件已更改。但是,是否可以让 rsync 打印更改的文件内容的差异?我想在复制之前先看看发生了什么?我可以保存到文件并稍后使用 diff(1) 应用的东西?

rsync patch diff

22
推荐指数
2
解决办法
2万
查看次数

优化 rsync 以快速传输大文件

这就是我需要的:

  • 在源服务器上运行的 Rsync 守护进程。目标服务器执行 rsync 拉取,如下所示:
    rsync -ptv rsync://source_ip:document/source_path/*.abc destination_path/
  • 巨大的二进制文件(3 GB 到 5 GB)通过 LAN 从源计算机复制到目标计算机。所以不需要加密/解密。因此不使用SSH。目标机器直接连接到 rsync 守护进程。
  • 在 rsync pull 之前,目标文件夹将始终为空。所以我不必担心有条件地更新一些文件。Rsync pull 将始终在目标(而不是更新)中创建新文件。因此我不需要 rsync 来计算校验和。

我对接收端 rsync 消耗的 CPU 量不满意?在上述情况下,哪些 rsync 选项将帮助我优化 rsync 的使用。我担心的是 rsync 可能做的比我需要的更多。rsync 校验和文件。我不需要那个。

也希望看到速度改进。

更改块大小、禁用校验和等会有所帮助吗?

files rsync

22
推荐指数
1
解决办法
5万
查看次数

如何使用 rsync (chown chmod) 设置目标权限

我正在尝试从安装点到本地文件夹进行本地 rsync。我需要将所有者、组和权限设置为特定设置。这是我正在使用的:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test
Run Code Online (Sandbox Code Playgroud)

我最终在目录和文件上获得了 760 的权限,在所有权上获得了 root:root 权限(rsync 以 root 身份运行)。

我究竟做错了什么?

TIA

linux fedora rsync

22
推荐指数
2
解决办法
5万
查看次数

将大文件从一台 Linux 服务器复制到另一台

我正在尝试通过 10MB 链接将 75 GB 的 tgz(mysql lvm 快照)从我们洛杉矶数据中心的 Linux 服务器复制到我们纽约数据中心的另一台 Linux 服务器。

我得到大约 20-30Kb/s 的 rsync 或 scp,它在 200-300 小时之间波动。

目前它是一个相对安静的链接,因为第二个数据中心尚未激活,我从小文件传输中获得了极好的速度。

我遵循了通过谷歌找到的不同的 tcp 调整指南,但无济于事(也许我读错了指南,得到了一个好的指南?)。

我已经看到了 tar+netcat 隧道提示,但我的理解是它只适用于大量小文件,并且在文件有效完成传输时不会更新您。

在我求助于运送硬盘之前,有没有人有任何好的意见?

更新: 嗯......毕竟它可能是链接:(见下面我的测试......

从纽约到洛杉矶的接送:

得到一个空白文件。

[nathan@laobnas test]$ dd if=/dev/zero of=FROM_LA_TEST bs=1k count=4700000
4700000+0 records in
4700000+0 records out
4812800000 bytes (4.8 GB) copied, 29.412 seconds, 164 MB/s
[nathan@laobnas test]$ scp -C obnas:/obbkup/test/FROM_NY_TEST .
FROM_NY_TEST                                    3%  146MB   9.4MB/s   07:52 ETA
Run Code Online (Sandbox Code Playgroud)

获取快照 tarball。

[nathan@obnas db_backup]$ ls -la db_dump.08120922.tar.gz
-rw-r--r-- 1 root root 30428904033 Aug …
Run Code Online (Sandbox Code Playgroud)

linux files rsync scp

21
推荐指数
3
解决办法
5万
查看次数

标签 统计

rsync ×10

backup ×3

linux ×3

files ×2

bash ×1

diff ×1

fedora ×1

filesystems ×1

lvm ×1

patch ×1

scp ×1

synchronization ×1

unix ×1

virtual-machines ×1