标签: rsync

获取 rsync 以在传输后从 *sender* 中删除文件

我正在使用 rsync 将一个目录移动到另一个目录。有什么方法可以让 rsync 在将文件复制到接收者后从发送者中增量删除文件?

linux unix rsync command-line-interface file-transfer

12
推荐指数
1
解决办法
5440
查看次数

rsync 到文件的压缩存档

我使用 rsync 备份服务器,但这些备份非常大,我想压缩它们。有没有办法在 rsync 周围使用某种包装器来压缩备份中的文件,rsync 实时文件中的更改,然后在复制后立即重新 gzip 文件?

即如果 live 上的源文件是foobarbaz,则备份有foo.gzbar.gzbaz.gz

重申:我想要一端是压缩文件,另一端是未压缩文件。我不想在 rsyncing 之前进行压缩,因为即使使用 --rsyncable,它也会降低 rsync 的效率。我知道 rsync 的 -z 选项。我在备份机器上没有空间来存储所有未压缩的文件。

backup rsync gzip

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

告诉 Rsync 在传输过程中跳过当前文件?

有没有办法告诉 rsync 在同步正在进行时跳过其当前文件,也许是通过向它发送特定信号?

我已经知道基于模式的忽略,但这有时对我来说很方便。

rsync

12
推荐指数
2
解决办法
4469
查看次数

尝试设置 chroot 的 rsync

我正在尝试设置备份服务器。我想将每个用户(客户端)chroot到其主目录,并且只允许它使用sftprsync

我很快发现我并不是唯一一个尝试做这样的事情的人,我找到了这个指南并遵循了它。所以现在我只有 sftp 的 chroot 用户。

然后我发现 rsync 需要 ssh 才能在另一台机器上生成自己,而 sftp 是不够的。给每个用户一个 ssh 登录是我首先想避免的。

谁能想到一些可能的解决方案?

谢谢,

标记

backup ssh rsync chroot sftp

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

随着时间的推移,inode 表急剧缩小,导致 rsync/inode 问题

我们设置了一个 Linux(它在 Amazon AWS 上,一个类似 CentOS 的系统,尽管我们不确定在它上面完成的自定义)系统具有 4TB 存储作为 LVM 上的 XFS 卷(最终用于通过 NFS4 提供服务,但它是尚未使用),并且我们正在使用 rsync 将文件从我们的生产 NFS 服务器同步到 XFS 卷(即我们从 NFS 上的源 rsync 到本地安装的基于 XFS 的 LVM 卷)。但是我们观察到中间的某个时候rsync开始变得越来越迟钝(吞吐量急剧下降),并且平均负载和内存消耗都有很大程度的上升(CPU在iowait中的比例非常大)。最终我重新启动了 XFS 系统,系统显然恢复了正常,至少在过去的 24 小时内,rsync 性能更加正常。

我们检查了 munin 监控图并没有注意到任何明显的东西,但我们发现“inode table size”和“open inode”指标(检查了指向从 /proc/sys/ 读取的值的 munin 插件实现) fs/inode-nr)随着时间的推移不断减少。在我们观察到 rsync 卡住之前不久,我们观察到这两个指标都从几十万下降到了几千(我们的非 XFS 服务器大部分时间保持在大约 500k,并且在很长一段时间内没有表现出任何单调下降的趋势) ),我们从内核中观察到日志如下:

ip-XX-XXX-XXX-XXX 登录:[395850.680006] hrtimer:中断耗时 20000573 ns
9 月 18 日 17:19:58 ip-XX-XXX-XXX-XXX 内核:[395850.680006] hrtimer:中断耗时 20000573 ns
[400921.660046] 信息:任务 rsync:7919 被阻止超过 120 秒。
[400921.660066]“echo 0 > /proc/sys/kernel/hung_task_timeout_secs”禁用此消息。
[400921.660077] rsync D ffff880002fe4240 …

linux xfs rsync

12
推荐指数
1
解决办法
1343
查看次数

强制 rsync 复制符号链接,即使所指对象不存在

我通过 rsync 收到此消息:

symlink has no referent: "/a/path"
Run Code Online (Sandbox Code Playgroud)

嗯,rsync 是对的:在源文件系统中,(符号)链接指向一个不存在的位置。这是有意的。链接的目标仅存在于目标文件系统中。我希望 rsync 忽略这个事实并在目标中创建符号链接。

如何强制 rsync 这样做?

linux rsync symbolic-link

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

rsync 失败后如何清理?

我杀死了一个本地“rsync -ah”进程。
它在目标目录中留下了像“.abc.vmdk.zxivMN”这样的垃圾文件。
垃圾文件不会在连续的“rsync -ah”运行中被删除。

详细信息:
我在同步的两个文件夹上运行 diff 并报告:“仅在 /mnt/archive1/documents/general: .abc.vmdk.zxivMN”

清理临时 rsync 文件的最佳方法是什么?

rsync

12
推荐指数
2
解决办法
6910
查看次数

当远程 rsync 在路径中时,rsync 需要 rsync-path

我很困惑为什么 rsync 需要 --rsync-path 标志,即使远程 rsync 在路径中。

考虑:

$ rsync -avze 'ssh -p 22' --delete public/ pmatos@domain.com:~/public_html
bash: /usr/local/bin/rsync: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(601) [sender=3.0.7]
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加 --rsync-path

$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync  --delete public/ pmatos@domain.com:~/public_html
sending incremental file list
...
Run Code Online (Sandbox Code Playgroud)

因此,第一个 rsync 没有成功,因为它正在 /usr/local/bin 中搜索 rsync,但是一旦我使用 --rsync-path 传递了 rsync 的明显路径,它就会起作用。

为什么是这样?(此命令行是 octopress 中 rake deploy 发出的命令行)

rsync path

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

为什么 rsync 会自己分叉?为什么一个这样的分叉进程几乎是空闲的(如 iotop 中所见)?

这是指这里提到的问题,我也遇到了同样的情况。

在我的一台服务器上,我运行了一个 rsync,将一个巨大的目录(大小大于 300 Gb)备份到安装在同一台机器上的不同磁盘上。被 rsync 的目录包含数千个目录和文件。我使用“nohup”发出了一个 rsync 命令,然后使用“&”命令将其推送到后台。在远程 bash shell(使用 putty)上给出的完整命令是:

nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &
Run Code Online (Sandbox Code Playgroud)

然后只是为了检查复制数据的速度,我使用了“iotop”命令,发现有 3 个 rsync 使用相同的参数运行。在搜索时,我发现上面的链接说这是正常的。

但是在执行 iotop 以仅监视系统上运行的那些和唯一的 rsync 进程时,我看到一个进程正在读取文件,一个正在写入文件,但一个进程处于空闲状态。行为似乎很好,因为一个进程一次只做一件事,但是第三个进程在做什么(如下图中间的一个)?

我使用的 iotop 命令是:

iotop -p22250 -p22251 -p22252
Run Code Online (Sandbox Code Playgroud)

这是 iotop 命令输出的屏幕截图:

显示 3 个 rsync 进程的 iotop 命令输出

我问这个是因为我经常使用 rsync,并想了解它的行为以获得长期利益。我什至阅读了手册,但它没有提到分叉。

linux rsync command

11
推荐指数
1
解决办法
3842
查看次数

使 cronjob 等待上一个 rsync 作业完成

我正在使用 rsync 将一些数据从一台服务器备份到另一台服务器。一切正常,但可能需要更长的时间才能完成,具体取决于要传输的数据量。

是否有任何保证方法可以确保 rsync 命令在上一个使用 cronjob 完成之前不会启动?

例如,我每小时运行 rsync 命令,但传输可能需要 1 个多小时才能完成,因此下一个将在前一个完成之前开始。

linux rsync cron

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