Domanda

Sto creando uno script bash per il backup i miei file con rsync.

I backup provengono tutti da una singola directory. Voglio solo i file nuovi o modificati per eseguire il backup.

Al momento, sto dicendo rsync per il backup della directory, e per controllare i file rispetto all'ultimo backup.

Il modo in cui sto facendo questo è

THE_TIME=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/Backup/Current /usr/home/user/backup /Backup/Backup-$THE_TIME
rm -f /Backup/Current
ln -s /Backup/Backup-$THE_TIME /Backup/Current

Sono abbastanza sicuro che ho la sintassi corretta per questo. Ogni backup controllerà contro la cartella "corrente", e caricare solo come controlo. Sarà quindi eliminare la cartella corrente, e ricreare il collegamento simbolico al più nuovo di backup che ha appena fatto.

sto ottenendo un errore quando ho eseguito lo script:

rsync: link "/Backup/Backup-2010-08-04-12:21:15/dgs1200series_manual_310.pdf"
     

=> /Backup/Current/dgs1200series_manual_310.pdf   fallito: Operazione non supportata (45)

Il sistema operativo host è in esecuzione HFS file system, che supporta il collegamento rigido. Sto cercando di capire se qualcosa non sta sostenendo questo, o se ho un problema nel mio codice.

Grazie per qualsiasi aiuto

Modifica:

Sono in grado di creare un collegamento fisso sulla mia macchina locale. Sono anche in grado di creare un collegamento fisso sul server remoto (quando connesso localmente) Io non sono in grado di creare un collegamento fisso sul server remoto quando montato tramite AFP. Anche se sono presenti entrambi i file sul server.

sto indovinando questa è una limitazione di AFP.

È stato utile?

Soluzione

Due cose dalla pagina man stare fuori che sono la pena di verificare:

  

Se del file non sono link, controllare i loro attributi. Anche                 verificare se alcuni attributi sono sempre costretti al di fuori di rsync                 controllo, ad un'opzione che squishes radice di un singolo supporto                 utente o monta un'unità rimovibile con la proprietà generico (ad esempio                 come OS X di “Ignora proprietà su questo volume” l'opzione).

e

  

Si noti che le versioni di rsync prima di 2.6.1 aveva un bug che poteva                 Prevenire --link-dest di funzionare correttamente per un non-super-user                 quando è stato specificato -o (o impliciti in -a). È possibile lavorare-around                 questo bug evitando l'opzione -o durante l'invio di un vecchio rsync.

Avete il "Ignora proprietà" opzione attivata? Quale versione di rsync avete?

Inoltre, avete cercato di creare manualmente un collegamento reale simile utilizzando ln nella riga di comando?

Altri suggerimenti

Nel caso in cui la riga di comando è solo un esempio: assicurarsi di specificare sempre il link-dest directory con un assoluto percorso! Questo è qualcosa che mi ha portato un po 'di tempo per capire ...

Non so se questo è lo stesso problema, ma so che rsync non può sincronizzazione un file quando la destinazione è una partizione FAT32 e il nome del file ha un ":" (due punti) in esso. [La fonte filesystem ext3 è, e la destinazione è FAT32]

Provare a riconfigurare il comando date in modo che non fa uso di due punti e vedere se questo fa la differenza.

per es.

THE_TIME=`date "+%Y-%m-%dT%H_%_%S"`
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top