Rsync сохраняет полный каталог символических ссылок структура

Размер вашего текстового файла x МБ, у вас нет 2 * x МБ, но я полагаю, у вас тоже недостаточно места для сжатия файла? Текстовые файлы часто сжимаются до десятой части исходного размера ...

У вас недостаточно места для хранения только строк ($ total- $ rmv), но что, если они сжаты? tail -n + $ rmv "$ filename" | gzip> "$ filename.tmp" && zcat "$ filename.tmp"> "$ filename"

Принимая это как абстрактную интеллектуальную проблему, я бы разрезал файл на куски, размер которых соответствовал бы памяти или доступным дисковое пространство, начиная с последнего фрагмента и затем усекая исходный файл.Я также мог сжать файл на месте, используя уловку dd conv = notrunc .

Однако на практике я бы либо

  • скопировал файл по сети на сервер с достаточным объемом диска для хранения (только) строк ($ total- $ rmv), проверял, правильно ли я получил строки, удалите исходный файл и скопируйте обратно.

  • добавьте диск, так как он вам явно нужен.

0
24.05.2019, 12:47
1 ответ

Я думаю, вам нужно сначала разрешить ссылки, а затем запустить rsync для отдельных файлов. Таким образом, он может сохранить разрешенную структуру каталогов через -R. Т.е. попробуйте это в Linux:

rsync -avRL --files-from=<(find ${BACKUP}/backup/symlinks/ -exec readlink -f {} \;) / /${BACKUP}/backup/data/

и это в Mac OS:

rsync -avRL --files-from=<(find ${BACKUP}/backup/symlinks/ -exec readlink {} \;) / /${BACKUP}/backup/data/

Предполагается, что команда findвыводит правильные абсолютные пути, т.е. что ${BACKUP}является абсолютным каталогом.

0
28.01.2020, 03:40

Теги

Похожие вопросы