Мне нужно скопировать смонтированную папку ISCSI 700 ГБ в папку на локальном жестком диске, сохранив при этом существующие разрешения и права собственности. Данные в папке состоят из примерно миллиона файлов, в основном небольших, и новый каталог должен точно соответствовать разрешениям и владельцам оригинала.
С помощью
rsync -az /original_folder/ /new_folder
получает все разрешения правильно, но он уже более часа «сканирует файлы» и еще даже не начал справляться с этим. Данные представляют собой общие дисковые ресурсы openvz, и в прошлом возникали проблемы с разрешениями, когда они копировались с помощью "cp".
Есть ли более быстрый способ скопировать огромное количество небольших файлов с точным сохранением разрешений и прав собственности? Может быть, есть какие-то флаги rsync, которые помогут избежать первоначального сканирования? В идеале инструмент, который может продолжить работу с того места, где вы остановились, если процесс будет прерван.
Вы рассматривали возможность использования tar? Что-то вроде tar -cpOC <sourcedir> . | tar -xpC <targetdir> -f -
может сделать вам.
В этой ситуации вам, вероятно, следует попытаться скопировать том, а не пытаться дублировать отдельные файлы.
Есть ли у цели iSCSI способ клонирования тома?
Какую версию rsync вы используете? Версия 3 немного лучше обрабатывает небольшие файлы. Вы также можете использовать -P, чтобы понять, насколько далеко вы продвинулись.
Насчет восстановления с партиалов .. хрм. Вы можете зайти в свой корневой каталог и запустить что-то вроде ..
для i в *; сделать rsync -azP $ i / newfolder; сделано
затем пропустите любые подкаталоги, которые вы уже скопировали
cp -aux
(как root) должно помочь.