У меня проблема с передачей файлов между двумя Linux-серверами в одной сети. На исходном сервере у меня есть каталог с 40055 небольшими файлами, размер каталога составляет 34 ГБ. Я попытался передать эти файлы с помощью команды rsync:
rsync -ah --progress --inplace /dir/dir_with_files user@server:/dir/destination_dir
После переноса на целевом сервере у меня есть каталог размером 108 ГБ, а не 34 ГБ
Блоки на разделах такие же.
Я сделал то же самое с scp, но проблема та же.
Для полного сохранения всего попробуйте:
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
сказать? Таким образом, вы исключаете размер блока.