Problemi nella negoziazione delle versioni del protocollo rsync


1

Sto cercando di risincronizzare tra una scatola Linux e una scatola MacOS.

Il MacOS (yosemite) sembra venire con una vecchia versione di rsync, quindi l'ho aggiornato usando homebrew. OK, mi sembra di avere versioni perfettamente corrispondenti:

wim@wim-imac:~$ rsync --version | head -n 1
rsync  version 3.1.1  protocol version 31
wim@wim-imac:~$ ssh wim@wim-dell
wim@wim-dell:~$ rsync --version | head -n 1
rsync  version 3.1.1  protocol version 31

Se sta "estraendo" dalla casella di MacOS (ovvero la destinazione è locale e la fonte è remota) funziona:

wim@wim-imac:~$ rsync -nvvvv wim@wim-dell:/media/wim/wim_2tb/guitar /Volumes/wim2TB/guitar | grep Protocol
(Server) Protocol versions: remote=31, negotiated=31
(Client) Protocol versions: remote=31, negotiated=31

Ma se sta spingendo dal box sorgente (linux) al mac, ora c'è un piccolo problema: c'è una mancata corrispondenza del protocollo.

wim@wim-imac:~$ ssh wim@wim-dell
wim@wim-dell:~$ rsync -nvvvv /media/wim/wim_2tb/guitar wim@wim-imac:/Volumes/wim2TB/guitar | grep Protocol
(Server) Protocol versions: remote=31, negotiated=29
(Client) Protocol versions: remote=29, negotiated=29

Quindi il sintomo di questo è dato che abbiamo negoziato il più basso protocollo di denominazione comune 29, non ricevo supporto --iconve tutti i nomi di file con personaggi divertenti vengono rovinati.

wim@desk35:~$ rsync -nv --iconv=UTF-8,UTF8-MAC /media/wim/wim_2tb/guitar wim@wim-imac:/Volumes/wim2TB/guitar
rsync: on remote machine: --iconv=UTF8-MAC: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-45/rsync/main.c(1333) [server=2.6.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]

Ho guardato per qualsiasi tipo di rsyncddi calcio che potrebbero essere in esecuzione sul Mac utilizzando ps aux, ps -efma non riuscivo a trovarlo.

Perché la macchina mac seleziona la vecchia versione del protocollo quando viene contattata da remoto e come posso utilizzare la versione più recente di rsync che ho installato?

Risposte:


1

Sto indovinando che la versione homebrewed di rsync sia in / usr / local / bin invece di / usr / bin (che è come dovrebbe essere), ma quando rsyncing dalla tua Linux box sta eseguendo / usr / bin / rsync come agente remoto. Se questo è il problema, dovresti essere in grado di risolverlo aggiungendo --rsync-path=/usr/local/bin/rsync(o qualunque sia il percorso effettivo sul lato OS X).

Nota: per favore non sostituire la versione di rsync fornita da Apple nella directory / usr / bin - in questo modo sta alla follia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.