rsync mirror files-from


0

Il seguente comando copia i file ricorsivamente da $ MIRROR_SOURCES relativi a $ MIRROR_SOURCE a $ MIRROR_DEST; ma il flag di cancellazione non funziona.

rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST

Ci sono file in $MIRROR_SOURCES che non sono in $MIRROR_SOURCE?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams: no. le fonti contengono un elenco di directory presenti e quindi rsync copia ricorsivamente i file in quelle directory elencate.
Ablue

Allora cosa ti aspetti che cancelli?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams: mi aspetto che elimini i file da DEST che non sono presenti in SOURCE. Per esempio. Una copia speculare
Ablue

Risposte:


1

Leggere --Elimina nel man rsync con attenzione, sottolineatura mia:

Questo dice a rsync di cancellare file estranei dal lato ricevente (quelli che non sono sul lato di invio), ma solo per le directory che vengono sincronizzate . Devi aver chiesto a rsync di inviare l'intera directory (es. "Dir" o "dir /") senza usare un carattere jolly per i contenuti della directory (es. "Dir / *") poiché il carattere jolly è espanso dalla shell e rsync ottiene così un richiesta di trasferimento di singoli file, non della directory principale dei file. Anche i file esclusi dal trasferimento vengono esclusi dall'eliminazione a meno che non si utilizzi l'opzione --delete-excluded o contrassegna le regole come solo corrispondenti sul lato mittente (vedi i modificatori di inclusione / esclusione nella sezione REGOLE FILTRO).

Il punto cruciale della trama è che lo fa solo per ciò che specifichi di essere sincronizzato e dipende dal fatto che tu abbia specificato un carattere jolly o meno, se non lo vuoi, ma invece vuoi che succeda ovunque, allora puoi specificare --delete-excluded bandiera pure.

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.