rsync falha após a reinicialização do servidor

2

Normalmente eu uso o comando

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

no meu servidor de desenvolvimento para sincronizar somedircom um servidor remoto. Funcionou bem. Mas depois que o servidor remoto foi reiniciado, esse comando não funciona mais. Ele exibe as seguintes mensagens de erro:

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]

Mas o serviço SSH ainda funciona corretamente. Eu posso usar ssh user@server_ipaddresspara entrar no servidor. Como posso fazer o rsynctrabalho de novo?

update: rsync também não funciona localmente. dá erro da seguinte forma:

[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]

atualização 2

Eu compilei o código fonte rsynce reinstalei no servidor. Agora funciona. Obrigado por todas as sugestões.

SpawnST
fonte
Você pode executar rsyncno sistema remoto?
Ignacio Vazquez-Abrams
@Ignacio Vazquez-Abrams, eu tento rsync do servidor para outro servidor, dá-me algum erro comorsync: Failed to exec ssh: Permission denied (13) rsync error: error in IPC code (code 14) at pipe.c(83) [sender=2.6.8] rsync: writefd_unbuffered failed to write 4 bytes [sender]: Broken pipe (32) rsync error: error in IPC code (code 14) at io.c(1119) [sender=2.6.8]
SpawnST
Funciona localmente nesse servidor?
Ignacio Vazquez-Abrams
@Ignacio Vazquez-Abrams, o que você quer dizer localmente? Apenas correr rsyncsozinho?
SpawnST
Apenas rsync de um diretório para outro.
Ignacio Vazquez-Abrams

Respostas:

1

Desde que a mensagem de erro diz "erro no protocolo rsync", isso indica que o rsync está usando o rsyncprotocolo para comunicação e não ssh . Portanto, seu teste que mostra que sshestá funcionando é irrelevante, mas pode levar a uma solução.

Eu acho que o servidor remoto pode estar executando o rsync como um daemon ( rsync --daemon) antes da reinicialização. Não foi reiniciado automaticamente após a reinicialização.

Eu vejo duas soluções:

  1. Reinicie rsync --daemonno servidor remoto. Coloque-o em algo /etc/init.dsemelhante ou semelhante para que seja reiniciado após a próxima reinicialização.
  2. Use o sshprotocolo para o rsync.

Para usar o sshrsync, defina a variável de ambiente:

export RSYNC_RSH=ssh

ou adicione -e sshao seu comando rsync.

Doug Harris
fonte
rsyncno sistema local fala com rsynco sistema remoto usando o protocolo rsync. ssh é apenas o transporte.
Ignacio Vazquez-Abrams
rsync --daemonescuta na porta 873 (por padrão). Isto é independente dessh
Doug Harris
O modo de daemon não tem nada a ver com a questão. O transporte padrão para rsyncé ssh, a menos que seja usado um duplo-ponto duplo.
Ignacio Vazquez-Abrams
Ah ... bom ponto no cólon duplo. Você está certo sobre isso. rsyncUsos modernos ssh, mas acho que os mais antigos são usados rshpor padrão. Eu me lembro de ter que definir RSYNC_RSH (e continuar fazendo isso fora do hábito e / ou legado bash arquivos de inicialização).
Doug Harris
Eu tentei usar a -e sshopção, mas ainda tenho o mesmo erro :(
SpawnST
0

Às vezes, esses códigos de erro rsync são devido a diferentes versões do rsync entre o cliente eo servidor, você pode verificar o número de versão de ambos?

  • Qual sistema operacional você está usando no cliente e na máquina do servidor?
jhcaiced
fonte
Todos os meus servidores estão usando o CentOS Release 5.2 e os rsync --versionshows rsync version 2.6.8 protocol version 29.
SpawnST
Meus servidores CentOS 5.8 mostram o rsync-3.0.6-4, então você está usando uma versão antiga. Lembro-me que o rsync é uma das primeiras coisas que preciso atualizar quando o servidor foi instalado e a mensagem de erro foi semelhante à sua. Só para ter certeza, eu recomendaria atualizar o pacote openssh também. (yum update openssh rsync)
jhcaiced