Ошибка rsync: не удалось установить время для "/ foo / bar": операция не разрешена - PullRequest
164 голосов
/ 21 марта 2009

Я получаю сбивающую с толку ошибку от rsync, и начальные вещи, которые я нахожу из веб-поиска (как и все обычные chmod'ing), не решают ее:

rsync: failed to set times on "/foo/bar": Operation not permitted (1)
rsync error: some files could not be transferred (code 23) 
  at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]

Кажется, что это работает, несмотря на эту ошибку, но было бы неплохо избавиться от этого.

Ответы [ 8 ]

251 голосов
/ 21 марта 2009

Если /foo/bar в NFS (или, возможно, в некоторой файловой системе FUSE), это может быть проблемой.

В любом случае добавление -O / --omit-dir-times в вашу командную строку позволит избежать попыток установить время изменения каталогов.

78 голосов
/ 06 января 2012

Возможно, проблема связана с тем, что / foo / bar не принадлежит процессу записи в удаленной системе darwin (OS X). Решение проблемы заключается в назначении подходящего владельца на удаленном сайте.

Поскольку за этот ответ проголосовали, и поэтому, надеюсь, он кому-то пригодился, я расширяю его, чтобы сделать его более понятным.

Причина, по которой это происходит, заключается в том, что rsync, вероятно, пытается установить произвольное время изменения (mtime) при копировании файлов.

Для того, чтобы сделать эту системную функцию darwin utime (), необходимо, чтобы эффективный uid процесса записи был таким же, как для uid файла или для суперпользователя, см. страницу opengroup utime . Проверьте это обсуждение в списке рассылки rsync как ссылку.

2 голосов
/ 15 октября 2014

Проблема в моем случае заключалась в том, что «точка монтирования приемника» была неправильно установлена. Это было в режиме только для чтения (по какой-то необычной причине). Похоже, rsync копирует файлы, но это не так. Я проверил свой файл fstab и изменил параметры монтирования по умолчанию, заново смонтировал файловую систему и снова запустил rsync. Все хорошо тогда.

0 голосов
/ 25 февраля 2019

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

0 голосов
/ 08 декабря 2016

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

0 голосов
/ 06 сентября 2016

Это случилось со мной на разделе типа xfs (rw,relatime,seclabel,attr2,inode64,noquota), где каталоги принадлежали другому пользователю в группе, членами которой мы были. Членство в группе уже было установлено до входа в систему, и вся структура каталогов была доступна для записи группой. Я вручную запустил sudo chown -R otheruser.group directory и sudo chmod -R g+rw directory, чтобы подтвердить это.

Я до сих пор не представляю, почему он изначально не работал, но владение с sudo chown -R myuser.group directory исправило это. Возможно, связанный с SELinux?

0 голосов
/ 16 февраля 2010

Возможно, у вас нет прав доступа к некоторым файлам. Из учетной записи администратора попробуйте «sudo rsync -av». Альтернативно, включите учетную запись root и войдите в систему как root. Это должно позволить вам полностью подключить вашу систему и перевести ваш rsync! ;-) Я не уверен, поможет ли вышеупомянутый --extended-attribute, но я также добавил это, просто для хорошей меры.

0 голосов
/ 21 марта 2009

Я видел эту проблему, когда пишу в файловую систему, которая не (должным образом) обрабатывает время - я думаю, SMB разделяет или FAT или что-то.

Какая у вас целевая файловая система?

...