Rsync 通过 ssh 挂起从客户端到 LAN NAS 服务器的文件

Rsync 通过 ssh 挂起从客户端到 LAN NAS 服务器的文件

我正在使用 rsync 通过 SSH 将备份到本地网络上的 NAS。但是,在运行 rsync 时,我发现它在某些文件上卡住了。Rsync 将完全冻结并拒绝传输任何其他文件。然后我不得不强制 SIGKILL,这会导致整个 rsync 作业重新启动并卡在上次运行它时导致它挂起的同一个文件上。

我尝试了各种修复方法,但到目前为止都没有奏效。我最初认为这是因为我的本地系统(带有 OS Extended FS 的 OS X 10.11.3 和运行 Ubuntu Linux 14.04.1 的 NAS 以及用于备份的 ext4 驱动器)之间存在一些非法字符问题。我注意到,当 rsync 卡在它通常拥有的文件上时,文件名或路径中通常会有 9/10 次“&”。

lsof然而,在观察服务器上的rsync 进程后,htop似乎 rsync(大多数情况下,但不是全部)在客户端的 rsync 文件挂起的同一点附近崩溃。但我注意到,即使客户端的 rsync 挂起,我仍然会看到输出,显示lsof正在访问服务器端的文件。

这是我正在使用的 rsync 命令。

/usr/bin/rsync --bwlimit=1000 --verbose --rsync-path="sudo rsync" --archive --recursive --numeric-ids --human-readable --partial --progress --relative --itemize-changes --stats --files-from=/Users/user/Dropbox/Flex/Scripts/mac/rysnc-backup-to-cp/config/backup_files --exclude-from=/Users/user/Dropbox/Flex/Scripts/mac/rysnc-backup-to-cp/config/exclude -e "ssh -q -p 22 -i /Users/enwhat/.ssh/user" / [email protected]:/media/Backup/_Backup/Machine/

rsync 通常会卡住的示例:

<f+++++++ Volumes/Data/Users/user1/Pictures/2013_12_iPhone_Archive/IMG_6993.m4v 17.33M 63% 994.25kB/s 0:00:10

或者

<f+++++++ Volumes/Data/Users/user1/Documents/docs/Work/_Sort from USB backup drive/Drive/JOB/CD Album/AAA1834__Album&flyer_15_Years/2-Design/1-D-Visuals/stage 05/AAA_album_12_c.psd 96.40M 50% 1.55MB/s 0:01:00

我尝试过逐个删除--verbose --rsync-path="sudo rsync” --delete-during所有文件。当我删除这些参数标志时,rsync 进程将到达给定文件然后挂起。

这里是否存在其他因素,或者文件名中的非法字符很可能会导致 FS 类型之间出现问题?

我确实认为服务器上运行的 Crashplan 可能消耗了太多资源并导致 rsync 崩溃。但是当我停止服务器上的 CrashPlan 服务时,资源确实释放了,但 rsync 仍然在相同的文件上崩溃。这是一个旁注,超出了问题的范围,但我确实想知道我是否应该放弃 Crashplan 并切换到 Amazon Glacier 作为备份服务,因为 Crashplan 占用了大量的 CPU 和内存。

答案1

我不知道 rsync 为何会挂起。您可以尝试在该目录树中运行常规复制,看看是否存在某种 I/O 错误。运行文件系统检查也不错。

至于 Amazon Glacier,是的,您可以使用它。Duplicity 支持 S3 作为备份目标,并且 S3 的生命周期规则允许您自动将文件移动到 Glacier(通过 S3 Web 控制台配置)。您需要将签名和清单文件保留在 S3 中(否则 duplicity 将无法检索它们),但只有在您需要提取备份文件时才需要卷文件,因此它们可以安全地存储在 Glacier 中。生命周期规则需要已知前缀,这不是 duplicity 的默认行为,因此请务必检查参数设置。

相关内容