我计划将安装在 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 来写这个可能会更容易。