Фон

Что такое "правильный" метод для использования rsync для резервного копирования данных? Причина, по которой я запрашиваю "правильный" метод, заключается в том, что мой предыдущий опыт использования rsync привел к проблемам с разрешениями, маской файлов / папок и временными метками. Поэтому этот вопрос пытается понять, как я могу использовать rsync для резервного копирования данных, не сталкиваясь с какими-либо разрешениями, маской файлов / папок или проблемами, связанными с отметкой времени, в первую очередь, когда rsync используется в системе Windows.

Другим мотивом для этого вопроса является недопущение перехода к моей предыдущей проблеме, когда я не смог получить доступ к файлам на моем внешнем диске, для которого была создана резервная копия с помощью rsync через cygwin. Это был кошмар, потому что я фактически потерял данные на своем главном ПК и пытался восстановить их из резервной копии.

Ниже приведены похожие проблемы, с которыми я столкнулся при использовании rysnc:

Мое понимание использования rsync является промежуточным, и я сослался на руководства, перечисленные ниже. Тем не менее, моя самая большая путаница в использовании rsync связана с разрешениями, маскированием файлов / папок, Posix и т.д.

Требования / Предположения

  • Я хочу использовать rsync в контексте "резервного копирования", а НЕ в контексте "синхронизации". Часто другие пользователи, задающие вопросы, связанные с rsync, могут быть заинтересованы в "синхронизации" данных, чтобы обеспечить синхронизацию рабочей копии файлов на другом ПК. Однако я не намерен "синхронизировать", а просто "сделать резервную копию", чтобы в случае чего-либо с моим ПК я мог получить последнюю резервную копию и восстановить ее.
  • Исходные файлы, для которых необходимо выполнить резервное копирование, могут существовать в любой операционной системе (например, Windows, Ubuntu, MacOS), но в первую очередь в Windows.
  • В Windows rsync используется с использованием подсистемы Windows для Linux (WSL), а НЕ через cygwin.
  • Местом назначения для резервного копирования может быть внешний диск, отформатированный как NTFS, FAT32 или exFAT, или сетевой диск (например, общий ресурс Samba).
  • Это не обязательно, но пункт назначения может быть подключен с использованием SSH

Мой текущий метод и проблемы

Я использую rsync через Windows Subsystem для Linux (WSL) в Windows 10. Ниже приведены примеры проблем, с которыми я столкнулся:

Пример 1: не работает

rsync -avhP --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

Этот метод приводит к тому, что файлы НЕ передаются и появляются ошибки, подобные приведенным ниже:

rsync: chgrp "/mnt/my_usb_mount/ProjectA/src" failed: Operation not permitted (1)

а также

rsync: mkstemp "/mnt/my_usb_mount/ProjectA/src/.mydata.json.6cfTCf" failed: Operation not permitted (1)

Пример 2: Частично работает

rsync -avhP --no-p --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

или же

rsync -avhP --no-p --chmod=ugo=rwX --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

Этот метод использования rysnc приводит к передаче файлов, но временная метка (созданная, измененная, доступная) все установлена на время передачи. Если я снова выполню команду rsync, все файлы будут обнаружены как измененные и будут перенесены повторно из-за неправильной метки времени. Кроме того, я получаю ошибки, как показано ниже:

rsync: chgrp "/mnt/my_usb_mount/ProjectA/src" failed: Operation not permitted (1)

Пример 3: правильно работает.

sudo rsync -avhP --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

Этот метод работает отлично, однако я не понимаю, почему я должен использовать sudo? Это потому, что я использую rsync в Windows через WSL? Должен ли я использовать sudo если бы я делал резервные копии файлов с ПК с Linux (например, Ubuntu)?

Хотя пример 3 является рабочим решением, у меня все еще много вопросов:

  • Как узнать, когда требуется sudo?
  • Когда я использую --no-p или --chmod=ugo=rwX
  • Что если у меня нет прав на использование sudo?
  • Будет ли это работать, если я выполняю резервное копирование файлов на сетевой диск?
  • Что если я использую SSH?
  • При использовании rsync из Windows через WSL, у меня возникнут странные проблемы с разрешениями или маской файлов / папок, как раньше?

1 ответ1

0

Ntfs и fat не заботятся о разрешении linux, вы должны сделать резервную копию на разделе ext4

или сделайте резервную копию и сожмите ее в tar.gz, а затем распакуйте в системный файл linux и восстановите

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .