Come copiare il volume di Time Machine su un altro disco usando rsync preservando gli ACL?


9

Di recente ho dovuto cambiare il filesystem del mio Mac da preservare le maiuscole alle maiuscole e minuscole. L'ho fatto usando CCC e copiando i dati su un altro disco, quindi tornando al disco principale appena formattato.

Ora, volevo fare il backup di Time Machine sul mio vecchio disco di Time Machine, che è ospitato sul mio NAS basato su FreeBSD, esportato tramite AFP. Tuttavia, sto ricevendo un errore che i filesystem non corrispondono, poiché Time Machine ha ancora fs senza distinzione tra maiuscole e minuscole. Questa volta, non posso usare CCC, poiché non supporta la copia a livello di file per i volumi di Time Machine.

Naturalmente, sono andato dritto per rsync, ma questo solleva un problema - se lo eseguo con:

/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/

inizia a lamentarsi non appena colpisce la Backups.backupdb/<machinename>cartella, con failed to set permissions, operation not permitted. Il problema qui è la copia di ACL, che sono abbastanza restrittivi:

 ll -dle /Volumes/Time\ Machine\ Backups/Backups.backupdb/<machinename>/
 drwxr-xr-x@ 19 root  staff  646 Dec 23 09:38 /Volumes/Time Machine Backups/Backups.backupdb/<machinename>/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown

Quindi, ho rimosso -Adal comando precedente e rsync ora sposta felicemente GB di dati.

Purtroppo, vorrei preservare anche gli ACL. È possibile in qualche modo? OS X non ha getfacl / setfacl e vorrei evitare di analizzare l'output di ls -le. Quello che vedo qui come soluzione è in qualche modo dire a rsync di applicare gli ACL "all'indietro", cioè dai file foglia alle directory, ma non c'è alcuna opzione.


Rsync sull'estremità di destinazione è in esecuzione come utente con l'autorizzazione a chmod quei file?
harrymc,

Questa potrebbe essere una domanda ovvia, ma sei sicuro che il supporto ACL sia attivato nel volume di destinazione? Implichi che stai copiando su un mac, il che dovrebbe, ma in quel caso dovrebbe semplicemente funzionare a meno che l'utente su quel fine non sia lo stesso ID utente dei file originali, nel qual caso dovrai probabilmente impostare quello su, o passa all'uso di root (ovviamente non è una buona cosa, ma si occupa del problema dei permessi di impostare la proprietà su qualcun altro).
Tom Scogland,

Inoltre, detto account utente dovrebbe essere definito per la destinazione, altrimenti il ​​proprietario non può essere impostato.
harrymc,

Risposte:


3

Scarica rsync versione 3 usando Homebrew. Quindi puoi provare l'opzione "--acls". Rsync su Mac sembra avere una sintassi della riga di comando leggermente diversa rispetto ad altri sistemi operativi. Probabilmente vuoi dare un'occhiata a questo link: http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/ . Descrive come ottenere rsync 3 e gli argomenti della riga di comando che usa.

Non sono un utente OSX, ma eseguo il backup del Mac di mia moglie su un server Linux con rsync.


2

rsync, almeno in OS X 10.4 e seguenti, trasferirà gli attributi ACL se viene usata l'opzione -E. Vedi la pagina man.


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.