Передача 40000+ файлов через rsync между двумя серверами

У меня проблема с передачей файлов между двумя серверами Linux в одной сети. На исходном сервере у меня есть каталог с 40055 небольшими файлами, размер каталога составляет 34 ГБ. Я попытался передать эти файлы с помощью команды rsync:

rsync -ah --progress --inplace /dir/dir_with_files user@server:/dir/destination_dir

После передачи на целевом сервере у меня есть каталог размером 108 ГБ, а не 34 ГБ

Блоки на перегородках одинаковы.

Я сделал то же самое с scp, но проблема та же.

1 ответ

Решение

Для полного сохранения всего, попробуйте:

rsync --archive --hard-links --sparse-files --acls --xattrs source dest

Затем, чтобы проверить правильность, вы можете сделать что-то вроде (при условии отсутствия пробелов в именах файлов): for file in *; do md5sum $file >> /tmp/sums.txt; done а потом diff sums.txt на обоих серверах. Однако md5summing займет некоторое время.

Если у вас есть пробелы в именах файлов, создайте что-нибудь с find и / или xargs

Кстати, что делает du --bytes -hs сказать? Таким образом, вы исключаете размер блока.

Другие вопросы по тегам