4

Фон

Я использую rsync/cygwin в Windows 10 для резервного копирования всех моих локальных файлов (источник) на внешний жесткий диск (место назначения). Я использовал это руководство http://www.howtogeek.com/175008/the-non-beginners-guide-to-syncing-data-with-rsync/ в качестве учебного пособия по использованию rsync/cygwin для резервного копирования. Примечание: мой внешний жесткий диск отформатирован в NTFS.

На самом первом резервном копировании я вручную скопировал / вставил нужные папки в место назначения. Все последующие резервные копии выполняются с использованием rsync, как описано ниже.

Мой метод резервного копирования с использованием rsync/cygwin

В Windows я создал файл backup.bat с помощью своих команд rsync, чтобы я мог быстро подключить внешний диск и начать резервное копирование. Ниже приведен пример моего файла backup.bat, где C - мой локальный диск, а E - мой внешний диск.

pause
rsync -avhP --delete --log-file="/cygdrive/C/Users/MyUsername/rsync-backup-log.txt" "/cygdrive/C/Users/MyUsername/Folder A" "/cygdrive/E/Backup/"
rsync -avhP --delete --log-file="/cygdrive/C/Users/MyUsername/rsync-backup-log.txt" "/cygdrive/C/Users/MyUsername/Folder B" "/cygdrive/E/Backup/"
rsync -avhP --delete --log-file="/cygdrive/C/Users/MyUsername/rsync-backup-log.txt" "/cygdrive/C/Users/MyUsername/Folder C" "/cygdrive/E/Backup/"
pause

Чтобы убедиться, что у меня нет проблем с разрешениями, я отредактировал свой файл C:\cygwin64\etc\fstab ниже:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

Проблема / вопрос

У меня проблема в том, что я часто вижу ошибки «Отказано в доступе (13)». Ниже приведена выдержка из журнала rsync. Обратите внимание, что некоторые файлы / папки сохраняются без ошибок. Тем не менее, есть некоторые файлы / папки, которые дают ошибки разрешения.

...
2016/12/17 15:57:04 [2968] >f+++++++++ Documents/Subfolder A/IMG_5678.JPG
2016/12/17 15:57:04 [2968] >f+++++++++ Documents/Subfolder A/IMG_5679.JPG
2016/12/17 15:57:04 [2968] >f+++++++++ Documents/Subfolder A/IMG_5680.JPG
2016/12/17 15:57:04 [2968] >f+++++++++ Documents/Subfolder A/IMG_5681.JPG
2016/12/17 15:57:04 [2968] >f+++++++++ Documents/Subfolder A/IMG_5682.JPG
2016/12/17 15:57:04 [2968] >f+++++++++ Documents/Subfolder A/IMG_5996.JPG
...
2016/12/17 15:58:03 [6052] >f+++++++++ Folder B/Subfolder C/FileD.docx
2016/12/17 15:58:03 [6052] cd+++++++++ Folder B/Subfolder C/Subfolder E/
2016/12/17 15:58:04 [6052] >f+++++++++ Folder B/Subfolder F/FileG.docx
2016/12/17 15:58:04 [6052] rsync: mkstemp "/cygdrive/E/Backup/Folder B/Subfolder C/.FileD.docx.dBBzQZ" failed: Permission denied (13)
2016/12/17 15:58:07 [6052] rsync: mkstemp "/cygdrive/E/Backup/Folder B/Subfolder F/.FileG.docx.8DkCUR" failed: Permission denied (13)
2016/12/17 15:58:07 [6052] rsync: recv_generator: mkdir "/cygdrive/E/Backup/Folder B/Subfolder H/Subfolder J" failed: Permission denied (13)
2016/12/17 15:58:07 [6052] *** Skipping any contents from this failed directory ***
2016/12/17 15:58:07 [6052] >f+++++++++ Folder B/Subfolder H/FileK.xlsx
2016/12/17 15:58:07 [6052] cd+++++++++ Folder B/Subfolder H/Subfolder J/
2016/12/17 15:58:07 [6052] rsync: mkstemp "/cygdrive/E/Backup/Folder B/Subfolder H/.FileK.xlsx.WQa396" failed: Permission denied (13)
2016/12/17 15:58:07 [6052] sent 91.52M bytes  received 1.79K bytes  9.63M bytes/sec
...

Поиск проблемы

Для устранения неполадок я перешел к одной из папок с ошибкой разрешения в проводнике Windows (на внешнем жестком диске). Ниже скриншот уведомления о диалоге, который я получаю. Когда я нажимаю «Продолжить», чтобы получить разрешение, папка открывается, но она пуста. Когда я повторно запускаю команду rsync (backup.bat), файлы в этой папке должным образом резервируются без ошибок.

Скриншот:

2 ответа2

2

Мне удалось найти решение, которое в настоящее время работает для меня. Я не уверен, что это гарантированный правильный подход.

Чтобы избежать проблем с разрешениями, мне нужно добавить в мою команду rsync следующее: --no-p --chmod=ugo=rwX . Таким образом, моя команда резервного копирования rsync должна выглядеть следующим образом:

rsync -avhP --no-p --chmod=ugo=rwX --delete --log-file="/cygdrive/C/Users/MyUsername/rsync-backup-log.txt" "/cygdrive/C/Users/MyUsername/Folder A" "/cygdrive/E/Backup/"

Кредит на это решение идет на следующий ответ в аналогичном посте: https://superuser.com/a/69764/607501

2

Как вы уже указали, --no-p с --chmod=ugo=rwX установит все биты прав доступа.

Однако, если вы хотите более детального контроля над разрешениями для нового каталога, вы можете использовать другие аргументы для --chmod=

Руководство, которое вы связали, на самом деле содержит пример этого (возможно, был добавлен после того, как вы его использовали): --chmod=Du=rwx,Dgo=rx,Fu=rw

man rsync содержит много информации об этой опции.

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