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

  • Как ограничить полосу пропусканием облачным хранилищем, установленным davfs?
  • Как остановить rsync от замены каждого файла независимо от того, было ли оно изменено?
  • Как сказать rsync не удалять некоторые папки в пункте назначения?
  • Как восстановить разрешения с помощью BackInTime / rsync?
  • rsync и смотреть частично переданный видеофайл
  • Как я могу вызвать запрос на кодовую фразу ssh key во время выполнения скрипта?
  • Ошибка rsync: некоторые файлы / attrs не были переданы
  • rsync хочет скопировать файлы, которые уже существуют в каталоге назначения
  • Как мне восстановить / var / cache?
  • Почему rsync настаивает, что есть разница во второй раз?
  • Как скопировать структуру каталогов без удаления символических ссылок?
  • Interesting Posts

    Использует ли использование полного диска шифрование вероятность потери данных в случае ошибок хранения?

    Команда Pipe для хвоста: когда первая команда прервана?

    Преобразование нескольких видео в несколько GIF-файлов

    Как перенести на работу раньше?

    Не удается получить доступ к моему серверу apache из локальной сети (малина Pi)

    Можно ли написать скрипт, который запускает команду su или sudo без ввода пароля?

    Переменные среды установки OS X

    Сбой при развертывании openSUSE

    Как установить несколько `core.excludesfile` в` .gitconfig`?

    Как использовать панель Cinnamon при использовании Awesome Window Manager в Cinnamon?

    Getmail: сброс соединения с помощью одноранговой сети (IMAP Idle)

    файловая система «/ boot» не является файловой системой системного раздела FAT EFS (ESP)

    tar исключить файлы * .zip

    Почему это совмещение регулярных выражений?

    Количество цифр, присутствующих в каждой строке для уникальной строки, использующей сценарий оболочки

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