cwRsync – rsync не удается воссоздать жесткие ссылки и символические ссылки

Вопрос или проблема

Я пытался скопировать некоторые данные, используя cwRsync на Windows, и пока это приводило только к неудачам.
Копирование выполняется с сетевого ресурса на другом ПК на локальный диск, на Windows 10. Без SSH.

Используемая команда:

rsync -rltDHUN --no-p --no-o --no-g --verbose --progress --stats

Основная проблема заключается в том, что rsync не воссоздает жесткие ссылки и символические ссылки/связи.

Вместо символических ссылок я получаю файлы без расширения, которые ничего не делают.
Вместо жестких ссылок я получаю обычные файлы, которые не связаны.

Лог говорит, что создано 263 ссылки, хотя в исходных данных их десятки тысяч.

В чем может быть проблема?


Провел еще несколько тестов и, похоже, проблема в сетевом ресурсе.

Для всего, что копируется локально, как на исходном, так и на целевом ПК, ссылки воссоздаются. Проблема в том, что место назначения копирования находится на NVMe-диске, а на исходном ПК нет возможности установить такой диск для локального копирования, нет слота.

Ответ или решение

Теория

Перед вами задача копирования данных с использованием cwRsync на Windows, которая сопряжена с проблемами воссоздания жёстких ссылок и символьных ссылок (symlinks). Rsync — это утилита, популярная в UNIX-системах для эффективного копирования и синхронизации файлов между двумя компьютерами либо в пределах одной системы. При этом cwRsync представляет собой адаптацию rsync для Windows.

В данной ситуации вы используете следующую команду:

rsync -rltDHUN --no-p --no-o --no-g --verbose --progress --stats

Вот краткое описание ключей, используемых в этой команде:

  • -r (recursive): копирование каталогов рекурсивно.
  • -l (links): копирование символических ссылок как символические ссылки.
  • -t (times): сохранение временных меток.
  • -D: это комбинация ключей, включающая --devices и --specials, но в Windows эти опции не имеют большого значения.
  • -H (hard-links): сохранение жёстких ссылок.
  • -U: избегает временных файлов в процессе копирования.
  • -N: не синхронизировать временные метки, если файл содержательно остался прежним.
  • --no-p --no-o --no-g: эти опции предотвращают сохранение прав доступа, владельцев и групп, что на Windows также может быть актуально.

На системе одного и того же компьютера ссылки удается сохранить, но при работе с сетевым хранилищем происходит сбой. Этот момент является ключевым в решении проблемы.

Пример

Ваши тесты показали, что когда исходные и целевые файлы находятся локально, все ссылки корректно воссоздаются, даже если используется другой компьютер. Это указывает на то, что проблема не в неудачных параметрах команды rsync, а в настройках самого сетевого хранилища или специфике использования сетевых путей на Windows.

Применение и Рекомендации

  1. Проверьте права доступа к сетевым ресурсам. Проверьте, имеются ли необходимые права для чтения и написания на сетевом хранилище. Возможно, ссылки не могут быть корректно скопированы из-за ограничений прав.

  2. Используйте UNC путь. На Windows рекомендуется использовать UNC (Universal Naming Convention) пути для сетевых ресурсов, либо монтировать сетевой ресурс как отдельный диск.

  3. Проверьте поддержки на уровне файловой системы. Убедитесь, что файловая система на сетевом диске поддерживает символьные и жесткие ссылки. Например, NTFS поддерживает, тогда как FAT32 — нет.

  4. Смонтируйте сетевой диск. Если это возможно, подключите сетевой диск локально через CIFS/SMB как диск в системе, что может оказаться более эффективным методом, чем доступ по сетевому пути.

  5. Технические ограничения Windows. Windows может иметь ограничения на использование символических ссылок, особенно это касается устаревших версий или специфичных настроек в новой ОС.

  6. Анализ ошибок. Анализируйте логи rsync более подробно для выявления конкретных ошибок, связанных с неудачами создания ссылок. В вашем лог-файле было указано, что создано 263 ссылки. Возможно, стоит углубиться и выяснить, почему оставшиеся не были обработаны.

  7. Тест с другим ПО. Попробуйте использовать другое ПО для копирования данных, например, robocopy, чтобы проверить, не повторяются ли проблемы. Это может подтвердить или исключить проблемы специфические для rsync.

  8. Техническая поддержка. Если ничего из вышеперечисленного не решает проблему, возможно, стоит обратиться в техническую поддержку разработчиков cwRsync или вашего сетевого оборудования для консультации.

Проблема с созданием жестких и символических ссылок является комплексной и может потребовать мультивекторного подхода для решения — начиная от конфигурации ПО и заканчивая физической архитектурой хранения данных.

Оцените материал
Добавить комментарий

Капча загружается...