Rsync errors

Самое главное, rsync (по крайней мере, на CentOs 5) не возвращает код ошибки. Скорее он отображает ошибки внутри и возвращает 0. Вот так:
  • sending incremental file list
    rsync: link_stat "/data/users/gary/testdi" failed: No such file or directory (2)
    
    sent 18 bytes  received 12 bytes  60.00 bytes/sec
    total size is 0  speedup is 0.00 (DRY RUN)
    
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]

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

На «справочной» странице rsync приведены коды ошибок, которые он может вернуть, и их значение. Если вы пишете его в bash, вы можете посмотреть$?

0     Success
 1     Syntax or usage error
 2     Protocol incompatibility
 3     Errors selecting input/output files, dirs
 4     Requested action not supported: an attempt was made to manipulate 64-bit
       files on a platform that cannot support them; or an option was specified
       that is supported by the client and not by the server.
 5     Error starting client-server protocol
 6     Daemon unable to append to log-file
10     Error in socket I/O
11     Error in file I/O
12     Error in rsync protocol data stream
13     Errors with program diagnostics
14     Error in IPC code
20     Received SIGUSR1 or SIGINT
21     Some error returned by waitpid()
22     Error allocating core memory buffers
23     Partial transfer due to error
24     Partial transfer due to vanished source files
25     The --max-delete limit stopped deletions
30     Timeout in data send/receive
35     Timeout waiting for daemon connection

Это максимально исчерпывающий список «наиболее распространенных ошибок», но код ошибки 1 всегда находится наверху.

Что означает код ошибки rsync 23?

Rsync означает удаленную синхронизацию. На самом деле, Rsync — это быстрый, гибкий и безопасный инструмент для синхронизации файлов.

Но во многих случаях передача файлов через Rsync заканчивается ошибками.

Обычно код ошибки 23 означает частичную передачу. Этот код не указывает причину незавершенного переноса.

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

Типичная ошибка проявляется как:

Как исправить код ошибки rsync 23?

Выделенные инженеры Bobcares отлаживают и исправляют ошибки rsync для наших клиентов. Теперь давайте рассмотрим несколько ситуаций, в которых наши клиенты получили код ошибки rsync 23.

Код ошибки rsync 23 означает частичную передачу из-за ошибки. Ошибка может быть любой: от опечаток в команде rsync до отказа в доступе к файлам. Инженеры службы поддержки разбираются с кодом ошибки 23.

1. Код ошибки 23 из-за отказа в разрешении

В первом случае клиент выполнил команду rsync для передачи файлов в своей системе.

Здесь была команда:

rsync -avz /home/user_name /home/guest/backup

Но эта команда привела к ошибке с кодом 23. Наши инженеры службы поддержки повторно выполнили команду rsync с параметрами -av . Затем мы получили сообщение об ошибке:

rsync: link_stat "xxxx/xxxxx/xxx" failed: Permission denied (13).

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

2. Найти файлы, которые не передаются

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

Чтобы решить эту проблему, пользователи всегда контролируют операции rsync, выполняя команду:

rsync -av --progress

Обычно эта команда выдает весь вывод терминала вместе с ошибками. Операция rsync заканчивается ошибкой с кодом 23. Но из-за большого количества выходных строк может быть сложно найти причину ошибки с кодом 23.

В этой ситуации наши инженеры службы поддержки снова выполняют команду rsync с параметром -n.

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

Фрагмент с одного из наших серверов:

root@awsxxx:~# rsync -azhv -e "ssh -p 2212" --dry-run /home/bobcares/test_200719 --delete-after --dry-run root@5x.136.xxx.121:/home/bobcares/test_200719
building file list ... done
created directory /home/bobcares/test_200719
test_200719/
test_200719/test

sent 79 bytes  received 70 bytes  298.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

Точно так же мы могли бы также использовать опцию -qдля подавления сообщений, отличных от ошибок.

Наконец, мы также следим за тем, чтобы опечатки в команде rsync не вызывали ошибки.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector