Резервное копирование файлов с помощью rsync: ошибка 23

Вопрос или проблема

Я пытаюсь сделать резервную копию своего /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 и т.д.) – не забудьте установить правильные правила. Не только установить владельца, но и включить этого владельца в список чтения и записи также.

пример freeNAS

Я на это подсел.

В случае, если вы запускаете в режиме подробного вывода и хотите увидеть, где находится сообщение “не удалось: Отказано в доступе” во всем этом выходе, выполните команду второй раз с grep:

rsync -avzP --exclude 'folderXX' /folder/ /backup-folder/ | grep failed

Теперь вы можете видеть только те файлы или папки, которые вы не можете резервировать

пожалуйста, проверьте владельца целевой директории, с уважением

Ответ или решение

Когда вы пытаетесь выполнить резервное копирование с помощью rsync и получаете ошибку 23, это означает, что некоторые файлы или атрибуты не были успешно скопированы. Это распространённая проблема, которую можно решить, поняв её причины и следуя рекомендациям, изложенным ниже.

Причины ошибки rsync 23

  1. Ошибка разрешений: Одна из наиболее частых причин ошибки 23 связана с тем, что rsync не может получить доступ к некоторым файлам или каталогам из-за недостатка разрешений (например, "permission denied"). Если вы работаете в терминале с правами пользователя, попробуйте запустить команду с sudo, чтобы гарантировать, что у вас есть необходимые права доступа.

  2. Не существующий источник: Если указанный вами путь к директории или файлу не существует, такая ошибка также может возникнуть. Убедитесь, что все указанные пути корректны.

  3. Исключенные файлы или каталоги: Если в вашей команде rsync используете опцию --exclude, возможно, вы исключаете некоторые файлы, которые хотите скопировать. Проверяйте, что не исключаете нужные файлы или директории.

  4. Специальные каталоги: Некоторые системные каталоги могут быть недоступны (например, ~/.gvfs). Такие директории обычно используются для точек монтирования для виртуальных файловых систем.

Рекомендации для устранения ошибки

  1. Включите режим подробного вывода: Используйте флаг -v (или -vv для более подробного вывода), чтобы увидеть, какие именно файлы не были скопированы. Это может помочь в выявлении проблем с правами доступа. Например:

    sudo rsync -avz /home/maria /home/guest/backup
  2. Проверьте вывод на наличие сообщений об ошибках: Просмотрите вывод rsync на наличие сообщений об ошибках, таких как Permission denied. Это даст вам представление о том, какие файлы не были скопированы.

  3. Используйте grep для фильтрации ошибок: Если вывод слишком обширен, лучше всего использовать grep, чтобы отфильтровать ошибки:

    sudo rsync -avz /home/maria /home/guest/backup | grep failed

    Это покажет только те файлы, которые не были скопированы.

  4. Проверьте права доступа к директории назначения: Убедитесь, что у пользователя, под которым вы запускаете rsync, есть разрешения на запись в целевую директорию. Если необходимо, измените права доступа с помощью chmod или измените владельца с помощью chown.

  5. Обновление и настройка системы: Убедитесь, что используете последнюю версию rsync. Если вы работаете с удалёнными системами или NAS, убедитесь, что права доступа установлены корректно как для владельца, так и для групп.

  6. Критически важные файлы: Если файл критически важен, а его невозможно скопировать из-за ограничений, вы можете попробовать использовать флаг --ignore-errors, который позволит продолжить процесс, игнорируя ошибки.

Заключение

Сообщение об ошибке 23 в rsync может указывать на несколько проблем. Самый важный шаг — это анализировать вывод команды и проверять права доступа к файлам и директориям. Используя предложенные рекомендации, вы сможете определить, какие именно файлы не были скопированы, и принять меры для их успешного резервного копирования.

Не забывайте регулярно выполнять резервное копирование и проверять целостность данных для обеспечения их сохранности.

Оцените материал
Добавить комментарий

Капча загружается...