使用 rsync 移动大尺寸目录

使用 rsync 移动大尺寸目录

我计划将安装在 SAN(板外)上的 linux o/sa 目录移至外部存储进行备份。目录大小为14TB

我确实有使用 rsync 移动文件入/出的经验,但从未对像现在这样的大型目录/文件进行过这样的操作。

目录按年/月/日/小时层次排列,并支持原始日志分析。

问题

因此,如上所述,由于资源限制,我无法将完整的 14TB 移动到外部/备份存储空间。我目前拥有的备份空间最大为 8 TB。那么是否有命令或开关/参数可以告诉 rsync 仅将文件复制到所述大小,即仅 TB。

笔记 我不太关心文件的性质,只是当文件大小超过一定范围时我就不想移动任何数据。

答案1

您无法通过设置限制来让 rsync 在复制了一定数量的字节后停止。您可以正常运行它

rsync -a /src/ /dest 

当 /dest 已满时,它就会停止并出现错误

 rsync: write failed on "...": No space left on device (28)

你可以用脚本做一些事情

find /src -printf "%p %s\n" >filelist_size

然后使用类似 awk 的程序来读取filelist_size文件名,filelist如果文件大小的总和低于某个阈值。

然后您可以将该files-from=filelist参数用于 rsync。

用 python 来写这个可能会更容易。

相关内容