Перемещение каталога большого размера с помощью rsync

Перемещение каталога большого размера с помощью rsync

Я планирую переместить каталог linux o/sa, который смонтирован на SAN (offboard), на внешнее хранилище для резервного копирования. Размер каталога составляет 14TB.

У меня есть опыт перемещения файлов с помощью rsync, но я никогда не делал этого с такими большими каталогами/файлами, как сейчас.

Каталоги организованы по иерархии год/месяц/день/час и поддерживают необработанные журналы для анализа.

Проблема

Итак, с учетом вышесказанного, из-за ограничений ресурсов я не могу переместить все 14 ТБ на внешнее/резервное хранилище. Резервное пространство, которое у меня есть в настоящее время, составляет максимум 8 ТБ. Так есть ли команда или переключатель/параметр, который я могу указать rsync копировать только файлы указанного размера, т. е. только ТБ.

ПРИМЕЧАНИЕ Меня не волнует характер файла, важен лишь его размер, и я не хочу перемещать какие-либо данные.

решение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.

Связанный контент