Voglio usare rsync per eseguire il backup del mio server Ubuntu con un disco residente su un Mac. Ma non riesco a farlo funzionare correttamente, poiché ogni volta che riesco a eseguire nuovamente l'operazione rsync dopo l'ora iniziale, i file con caratteri speciali vengono prima eliminati e quindi risincronizzati. Sembra che ci sia un problema con diversi set di caratteri.
La soluzione preferita sembra essere quella di utilizzare l' --iconv
opzione:
Puoi usare l'opzione --iconv di rsync per convertire tra UTF-8 NFC e NFD, almeno se sei su un Mac. Esiste uno speciale set di caratteri utf-8-mac che sta per UTF-8 NFD. Quindi, per copiare i file dal Mac al NAS, è necessario eseguire qualcosa del tipo:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Ciò convertirà tutti i nomi di file locali da UTF-8 NFD a UTF-8 NFC sul server remoto. Il contenuto dei file non sarà interessato.
Grazie a @Jan, ho aggiornato la mia versione di rsync sul mio mac dalla 2.6.9. al 3.1.1. Tuttavia, non sono ancora del tutto lì, poiché ora ricevo un ulteriore errore:
iconv_open("UTF-8", "utf-8-mac") failed
rsync error: requested action not supported (code 4) at rsync.c(118) [sender=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
Sono in perdita per capire perché "l'azione richiesta non è supportata" poiché sembra che la versione rsync sul mio Ubuntu (12.04) sia post 3.xx e quindi dovrebbe supportare l' --iconv
opzione.
EDIT: Vorrei aggiungere che quando (su Mac, nota bene) avvio una rsync DA MAC A Linux, tutto funziona magnificamente:
rsync -av --delete --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Ma andare dall'altra parte 'dal mac non funziona. Stranamente, il test per avviare rsync dalla macchina linux rende questo strano messaggio:
rsync: on remote machine: --iconv=UTF-8-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(605) [sender=3.0.9]
compresa la strana affermazione [server=2.6.9]
, anche se ho aggiornato alla 3.1.1 sul Mac. Per alcuni motivi, sembra che la mia macchina linux 'vede' solo la versione rsync originale sul Mac.
Qualche suggerimento su come risolverlo?