Rsync con server Linux: problema con caratteri speciali

3

Ho un problema con l'utilizzo di rsync per il backup dei file sulla mia macchina Linux remota sul mio Mac. La prima volta tutto va bene, ma a quanto pare c'è un problema con caratteri speciali tra mac e linux, dato che ogni volta che eseguo l'operazione rsync dopo, i file con caratteri speciali vengono prima cancellati e quindi risincronizzati. Sembra che ci sia un problema con set di caratteri diversi.

La soluzione preferita sembra utilizzare l'opzione --iconv :

You can use rsync's --iconv option to convert between UTF-8 NFC & NFD, at least if you're on a Mac. There is a special utf-8-mac character set that stands for UTF-8 NFD. So to copy files from your Mac to your NAS, you'd need to run something like:

rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/

This will convert all the local filenames from UTF-8 NFD to UTF-8 NFC on the remote server. The files' contents won't be affected.

Questo suona tutto e bene, ma il mio mac non sembra riconoscere questa opzione, dal momento che ottengo:

>     MyMachine:~ Macuser$ /usr/bin/rsync -av --delete --iconv=utf-8,utf-8-mac user@linuxmachine:/home/linuxuser/Test/ /Users/Macuser/Test/
>     rsync: --iconv=utf-8,utf-8-mac: unknown option
>     rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1333) [client=2.6.9]

Qualche suggerimento su cosa fare?

EDIT: la versione rsync sul mio mac è 2.6.9.

Macuser$ rsync --version
rsync  version 2.6.9  protocol version 29

Se quella versione non supporta l'opzione --iconv , come posso aggiornare in modo sicuro?

EDIT: Alla fine ho capito che oltre ad aggiornare rsync, dovevo anche cambiare l'ordine in cui ho specificato i set di caratteri, quindi ho aggiunto una risposta qui sotto.

    
posta Nick The Swede 08.10.2014 - 11:34
fonte

2 risposte

6

Alla fine ho capito che oltre ad aggiornare rsync, dovevo anche cambiare l'ordine in cui ho specificato i set di caratteri: pensavo che dovessi specificare il set di caratteri nell'ordine di trasformazione; ma sembra che quella non sia la sintassi corretta. Piuttosto, dovresti sempre utilizzare --iconv=utf-8-mac,utf-8 durante l'inizializzazione di rsync da mac e sempre utilizzare --iconv=utf-8,utf-8-mac durante l'inizializzazione di rsync dalla macchina Linux, non importa se io vuoi sincronizzare i file dalla macchina mac o linux.

Allora la soluzione di @ Mark funziona come per magia!

    
risposta data 06.01.2015 - 13:10
fonte
3

L'argomento --iconv è stato aggiunto in rsync versione 3.0.0 ( note sulla versione ) OSX fornisce solo la versione 2.6.9 (vedi la pagina open source di Apple )

Quindi è necessario ottenere una versione più recente di rsync. L'ultimo è 3.1.2 (2.6.9 è stato rilasciato nel 2006)

Avrei anche una versione più recente di rsync dato che la copia xattr è stata introdotta anche dopo 2.6.9

Penso che il modo più semplice per ottenere un nuovo rsync sia installare un gestore di pacchetti come Macports o Homebrew e quindi installare rsync o installare da fonte

    
risposta data 08.10.2014 - 13:30
fonte

Leggi altre domande sui tag