rsync и права на запись в целевой

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

 rsync: mkstemp "/.myTargetFile" failed: Permission denied (13) 

Похоже, что при попытке создать временный файл ( dot -file) во время передачи он, похоже, терпит неудачу при запуске. Почему он не замечает этого и прерывает раньше, а не пытается копировать весь файл без каких-либо прав на запись?

И где он копирует файл, если он не может создать временный файл? Я не вижу увеличения памяти процессов rsync, а также никакого соответствующего файла в / tmp . Похоже, что он напрямую отбрасывает данные в пункте назначения, но продолжает продолжать передачу.

3 Solutions collect form web for “rsync и права на запись в целевой”

Если вам нужно скопировать в каталог без разрешения на запись, добавьте --inplace в команду. Иногда это дешевле, так как он не создает временную копию, но во время обновления файл находится в противоречивом состоянии.

На вопрос, почему он не проверяет собственные права заранее: он мог пропустить некоторые дополнительные особенности как ACL расширенного доступа, поэтому rsync не верит в стандартную схему 3 * 3 + 3. OTOH эта преднамеренная политика не делает никакой реальной разницы в результате – в любом случае файл не обновляется.

Это, по-видимому, является недостатком текущего протокола rsync, как объясняется в трекере ошибок . Протокол rsync не может определить заранее, имеет ли он права на запись в целевом объекте. Вместо этого он просто отправляет и проверяет успех или неудачу после этого.

Rsync создает временный файл в той же папке целевого файла, поэтому в этом случае вы должны копировать некоторые файлы в / , так как вы не запускали его как root, и обычно / был доступен для записи только root, поэтому он терпит неудачу.

Чтобы узнать, какие файлы копируются, перейдите в параметр -v

  • rsync 3.1.0 создает пустые каталоги резервных копий
  • Сохраните список файлов через SFTP в текстовый файл
  • Невозможно хорошо понять Rsync с включенными и исключающими шаблонами
  • Синхронизация каталога с автоматическим обнаружением сверстников
  • Выяснить, была ли изменена цель rsync?
  • предотвращать параллельную работу резервного копирования
  • Исполняемый файл не «действительно существует» после rsync
  • rsync с параметрами --link-dest не создает жесткие ссылки
  • rsync и резервное копирование и изменение часового пояса
  • сохранение расширенных атрибутов cp / rsync
  • rsync перемещать файлы, оставлять каталоги?
  • Interesting Posts

    Установите переменную окружения для всех оболочек tmux при перезапуске gnome-сессий

    Изменить порядок событий в скрипте bash, который записывается в crontab

    Почему я не могу разбить WV-файл?

    как загрузиться / перезагрузиться в подробном режиме?

    Как я могу получить приглашение имени пользователя на экране входа в Mint 16?

    Извлечь значения из форматированного текста

    Инструмент Linux для мониторинга потребления полосы пропускания определенного процесса (PID)

    Какая разница между «терминалом», «оболочкой», «tty» и «консолью»?

    awk в solaris 5.8 / получить значение из двух полей / строк

    zsh отказывается принять новый сценарий автозаполнения

    Запуск процесса как другого пользователя / группы (в скрипте init.d)

    расширение командной строки переименования команд

    Безопасность – Runing Daemon, программа как root или пользователь vs sudo su

    Возобновите загруженный файл aria2 по файлу * .aria2

    Подождите, пока процесс завершит ИЛИ, чтобы пользователь нажал клавишу

    Linux и Unix - лучшая ОС в мире.