Я получаю ошибку, указанную в названии.
Я нашел этот похожий вопрос: Запустите rsync с правами root на удаленной машине . Это не отвечает на мой вопрос.
Я администратор на удаленном сервере, и я хочу использовать его rsync
для резервного копирования файлов на локальный компьютер. Вот моя команда rsync:
$ rsync -avz me@myserver.com:/var/www/ /backups/Sites/MySite/
Это в основном работает. Вход через пару ключей. Я не использую и не могу использовать пароль (РЕДАКТИРОВАТЬ: для входа через SSH). Несколько файлов не будут передаваться из-за разрешений. Я не хочу менять эти разрешения.
Вот ошибка:
receiving file list ... done
rsync: send_files failed to open "/var/www/webapp/securestuff/install.php": Permission denied (13)
Я не хочу менять разрешения для этого файла. Это (и другие как это) не должно быть читаемым (кроме корня).
Это должно выполняться в задании cron, и я предпочитаю простое однострочное решение, использующее только команду rsync. Следующим выбором будет сценарий оболочки, который я могу вызвать из задания cron. Ни в коем случае я не могу вручную войти на удаленный компьютер и стать пользователем root (потому что я буду спать, когда он запустится.
Как я могу использовать rsync для резервного копирования в локальную папку?
источник
rsync: send_files failed to open "/cygdrive/...": Permission denied (13)
. Таким образом, мой исходный компьютер был Windows Cygwin. Немного другая ситуация, но для потомков моим решением было щелкнуть правой кнопкой мыши cmd.exe и запустить от имени администратора .Ответы:
Вы не можете создать резервную копию файла , который вы не можете прочитать иначе, так что разрешения будут должны быть либо изменены или перекрываться корнем .
Ваши варианты более подробно:
Переопределите разрешения с помощью rsync'ing как
root@myserver.com
напрямую. (... или сконфигурировав sudo на сервере, чтобы разрешить беспараллельный запуск
rsync
серверного компонента.и
Создайте на сервере выделенную учетную запись «резервная копия сайта». Измените права доступа к файлам, чтобы сделать их читаемыми для учетной записи «website-backup»; Вы можете использовать ACL и
setfacl
для этого. Не используйте эту учетную запись для чего-либо еще.Напишите на сервере скрипт, который будет помещать / var / www / в зашифрованный архив. Опять же, это можно сделать как пользователь root (через crontab) или сконфигурировав sudo, чтобы не требовать пароль для этого скрипта. Например:
Резервное копирование будет производиться путем извлечения всего тарбола каждый раз, что может быть неэффективно на больших сайтах:
Требование пароля будет удалено путем редактирования sudoers :
источник
На удаленном хосте вы можете запустить демон rsync с помощью
в
/etc/rsyncd.conf
файле.Это позволит демону использовать
CAP_DAC_OVERRIDE
возможности и читать локальную файловую систему без изменения прав доступа / владельца.Если вам нужно просто сделать резервную копию, рекомендуется установить rsync в режим только для чтения:
источник
Если файлы доступны только для чтения,
root
необходимо иметьroot
доступ к резервной копии файла, считывая его из файловой системы.rsync
читает файлы из файловой системы, а не с необработанного устройства.За исключением
dump
,dd
и подобных резервных копий , которые копируют раздел , а что файлы, резервные копии программ для чтения файлов из файловой системы. Утилиты резервного копирования не смогут читать и создавать резервные копии файлов, для которых разрешения идентификатора пользователя, используемого для их запуска, препятствуют доступу. Это тот случай, когда вы сталкиваетесь.В большинстве случаев вам необходимо доверять программному обеспечению для резервного копирования, чтобы оно могло читать все ваши данные. Это также означает, что вам нужно доверять носителю резервного копирования все ваши данные. В некоторых случаях вы можете исключить некоторые файлы из резервной копии и использовать альтернативный метод для резервного копирования их содержимого.
РЕДАКТИРОВАТЬ: поскольку вы архивируете данные (копируете все разрешения), вам понадобится root-доступ на обоих серверах. Если вы делаете это в качестве резервной копии, вы можете посмотреть на решение, подобное BackupPC, которое использует rsync для чтения файлов, но сохраняет файлы в своем собственном дереве каталогов.
источник