Вопрос или проблема
Я пытаюсь сделать резервную копию своего /home, чтобы перенести все данные с одного компьютера на другой. Я хотел сохранить резервную копию на том же компьютере, а затем перенести её на другой. По соображениям безопасности я пытаюсь разобраться, как это работает на компьютере с небольшим объемом данных (новом), чтобы быть уверенным, что не удалю что-то вместо того, чтобы скопировать.
Я ввел в терминале:
sudo rsync -avz /home/maria /home/guest/backup
И получил в результате:
отправлено 58797801 байт получено 23050 байт 4705668.08 байт/сек
общий размер 100202958 ускорение 1.70
ошибка rsync: некоторые файлы/атрибуты не были переданы (см. предыдущие ошибки) (код 23) в main.c(1060) [sender=3.0.7]
Я попробовал еще раз, с тем же результатом. Я не имею понятия, какие файлы не были переданы, что делает всю резервную копию бесполезной для меня (я хотел сделать это автоматически, чтобы не забыть о чем-то и не потерять его).
На обоих компьютерах у меня одна и та же система (Ubuntu 10.04). Версия rsync: 3.0.7-1ubuntu1.
Спасибо за любые советы
Ну, поскольку вы запускаете rsync
в режиме подробного вывода, вы должны увидеть в его выходных данных, где заключается проблема. Обычно это ошибка отказано в доступе.
Например, предположим, что я хочу создать резервную копию папки ~/.gvfs
:
$ sudo rsync -av /home/arrange/.gvfs /tmp
[sudo] пароль для arrange:
отправка инкрементального списка файлов
rsync: link_stat "/home/arrange/.gvfs" не удалось: Отказано в доступе (13)
отправлено 12 байт получено 12 байт 48.00 байт/сек
общий размер 0 ускорение 0.00
ошибка rsync: некоторые файлы/атрибуты не были переданы (см. предыдущие ошибки) (код 23) в main.c(1060) [sender=3.0.7]
Так что мой совет – просмотреть вывод rsync -av
и искать подобные ошибки.
Я получил такую же ошибку. В моем случае rsync выдал эту ошибку, потому что я передал ему несуществующую исходную директорию.
Если вы переносите файлы на удаленное хранилище (например, freeNAS и т.д.) – не забудьте установить правильные правила. Не только установить владельца, но и включить этого владельца в список чтения и записи также.
Я на это подсел.
В случае, если вы запускаете в режиме подробного вывода и хотите увидеть, где находится сообщение “не удалось: Отказано в доступе” во всем этом выходе, выполните команду второй раз с grep:
rsync -avzP --exclude 'folderXX' /folder/ /backup-folder/ | grep failed
Теперь вы можете видеть только те файлы или папки, которые вы не можете резервировать
пожалуйста, проверьте владельца целевой директории, с уважением
Ответ или решение
Когда вы пытаетесь выполнить резервное копирование с помощью rsync
и получаете ошибку 23, это означает, что некоторые файлы или атрибуты не были успешно скопированы. Это распространённая проблема, которую можно решить, поняв её причины и следуя рекомендациям, изложенным ниже.
Причины ошибки rsync 23
-
Ошибка разрешений: Одна из наиболее частых причин ошибки 23 связана с тем, что
rsync
не может получить доступ к некоторым файлам или каталогам из-за недостатка разрешений (например, "permission denied"). Если вы работаете в терминале с правами пользователя, попробуйте запустить команду сsudo
, чтобы гарантировать, что у вас есть необходимые права доступа. -
Не существующий источник: Если указанный вами путь к директории или файлу не существует, такая ошибка также может возникнуть. Убедитесь, что все указанные пути корректны.
-
Исключенные файлы или каталоги: Если в вашей команде
rsync
используете опцию--exclude
, возможно, вы исключаете некоторые файлы, которые хотите скопировать. Проверяйте, что не исключаете нужные файлы или директории. -
Специальные каталоги: Некоторые системные каталоги могут быть недоступны (например,
~/.gvfs
). Такие директории обычно используются для точек монтирования для виртуальных файловых систем.
Рекомендации для устранения ошибки
-
Включите режим подробного вывода: Используйте флаг
-v
(или-vv
для более подробного вывода), чтобы увидеть, какие именно файлы не были скопированы. Это может помочь в выявлении проблем с правами доступа. Например:sudo rsync -avz /home/maria /home/guest/backup
-
Проверьте вывод на наличие сообщений об ошибках: Просмотрите вывод
rsync
на наличие сообщений об ошибках, таких какPermission denied
. Это даст вам представление о том, какие файлы не были скопированы. -
Используйте grep для фильтрации ошибок: Если вывод слишком обширен, лучше всего использовать
grep
, чтобы отфильтровать ошибки:sudo rsync -avz /home/maria /home/guest/backup | grep failed
Это покажет только те файлы, которые не были скопированы.
-
Проверьте права доступа к директории назначения: Убедитесь, что у пользователя, под которым вы запускаете
rsync
, есть разрешения на запись в целевую директорию. Если необходимо, измените права доступа с помощьюchmod
или измените владельца с помощьюchown
. -
Обновление и настройка системы: Убедитесь, что используете последнюю версию
rsync
. Если вы работаете с удалёнными системами или NAS, убедитесь, что права доступа установлены корректно как для владельца, так и для групп. -
Критически важные файлы: Если файл критически важен, а его невозможно скопировать из-за ограничений, вы можете попробовать использовать флаг
--ignore-errors
, который позволит продолжить процесс, игнорируя ошибки.
Заключение
Сообщение об ошибке 23 в rsync
может указывать на несколько проблем. Самый важный шаг — это анализировать вывод команды и проверять права доступа к файлам и директориям. Используя предложенные рекомендации, вы сможете определить, какие именно файлы не были скопированы, и принять меры для их успешного резервного копирования.
Не забывайте регулярно выполнять резервное копирование и проверять целостность данных для обеспечения их сохранности.