2

Обычно я использую команду

rsync -av --delete someroot/somedir user@remote_server_ip:/someroot/.

на моем сервере разработки, чтобы синхронизировать somedir с удаленным сервером. Работало нормально. Но после перезапуска удаленного сервера эта команда больше не работает. Он отображает следующие сообщения об ошибках:

rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8]

Но служба SSH по-прежнему работает правильно. Я могу использовать ssh user@server_ipaddress для входа на сервер. Как я могу заставить rsync снова работать?

обновление: rsync также не работает локально. это дает ошибку следующим образом:

[root@videochatweb1 web]# ./sync_client.sh
building file list ... rsync: link_stat "/opt/web/client/index.php"     failed: Permission denied (13)
done

sent 29 bytes  received 20 bytes  98.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at main.c(892)    [sender=2.6.8]

обновление 2

Я скомпилировал исходный код rsync и переустановил его на сервере.Теперь это работает.Спасибо за все предложения.

2 ответа2

1

Поскольку в сообщении об ошибке указано "ошибка в протоколе rsync", это указывает на то, что rsync использует для связи протокол rsync , а не ssh . Итак, ваш тест, который показывает, что ssh работает, несущественен, но может привести к решению.

Я думаю, что до перезагрузки удаленный сервер мог запускать rsync как демон (rsync --daemon). Он не был перезапущен автоматически после перезагрузки.

Я вижу два решения:

  1. Перезапустите rsync --daemon на удаленном сервере. Поместите его в /etc/init.d или аналогичный, чтобы он перезагрузился после следующей перезагрузки.
  2. Вместо этого используйте протокол ssh для rsync.

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

export RSYNC_RSH=ssh

или добавьте -e ssh к вашей команде rsync.

0

Иногда эти коды ошибок rsync происходят из-за разных версий rsync между клиентом и сервером. Можете ли вы проверить номер версии обоих?

  • Какую ОС вы используете как на клиентской, так и на серверной машине?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .