необъяснимая ошибка rsync (код 255) в io.c

8

Я использовал скрипт для выполнения rsync в sudo crontab. Сценарий выполняет двухстороннюю rsync (от сервера A к серверу B и обратно). После перезагрузки обоих серверов сервер rsync не работает sudo crontab. Я также установил новый cronjob, и он не работает, ошибка:

rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]

Однако при запуске из терминала скрипт rync работает, как и ожидалось, без проблем. пожалуйста помоги.

Кабир
источник

Ответы:

3

Немного трудно ответить, учитывая почти полное отсутствие соответствующей информации, но, как правило, если команда работает из приглашения, а не из задания cron, это потому, что вам нужно указать полный путь к команде (ям). Задания Cron не имеют нормальной пользовательской среды, что особенно означает, что они не имеют такой же PATH, как у обычных пользователей.

Джон Гарденье
источник
Раньше у меня была похожая проблема с rsync 2.6.8, очевидно, это ошибка, которая приводила к случайному завершению передачи croned, но я не помню, имел ли он этот код ошибки. В то время это было под CentOS 5.5. Позже с более новыми версиями CentOS rsync появился в 3.x, и проблема исчезла навсегда.
Дэвид Рамирес
3

Это происходит, когда в соединении отказано:

SSH: подключиться к хост-порту 2222: соединение отказано

с последующей rsyncошибкой:

rsync: соединение неожиданно закрыто (пока получено 0 байт) [получатель] ошибка rsync: необъяснимая ошибка (код 255) в /SourceCache/rsync/rsync-45/rsync/io.c(453) [получатель = 2.6.9]


Возможные причины:

  • В моем сценарии у меня была проблема с брандмауэром. Пробил дыру.
  • неверный пароль (вряд ли решит вашу проблему, но вызовет ту же ошибку)
SwiftArchitect
источник
3

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

Чтобы избежать этой проблемы, вам нужно добавить эти настройки в ваш ~/.ssh/configили /etc/ssh/ssh_config:

Host *
  ServerAliveInterval 30
  ServerAliveCountMax 6

и необязательно аналогично на удаленном сервере (в /etc/ssh/sshd_config), например

ClientAliveInterval 30
ClientAliveCountMax 6

Смотрите: какие варианты ServerAliveIntervalи ClientAliveIntervalзначат?

kenorb
источник
0

Пожалуйста, посмотрите на ваш список fail2ban.

используйте команду: «fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE», чтобы разблокировать его и повторить попытку.

Linkinall
источник