27Jun

Hvordan ekskludere filer fra Rsync

Rsync er en av de mest nyttige verktøyene for en serveradministrator, men det synkroniserer alt som standard, noe som kan være irriterende hvis applikasjonen lager mange midlertidige filer. Slik utelukker du filer når du bruker rsync.

Ekskluderer fra en liste i en fil

Dette er den ideelle metoden for å ekskludere filer og mapper, siden du alltid kan redigere listen og tilpasse om nødvendig. Her er syntaksen:

rsync - eksclude-fra = /path/to/ ekskluderingsfil /path/to/ kilde /path/to/ dest

Den vanskelige tingen med rsync er at du må bruke en relativ sti når du prøver å ekskludere ting, fordi når det prøver åsamsvar med utelukkelsene vil det ikke bruke den første delen av banen for kampen. .. det er rart.

Si for eksempel at du prøver å sikkerhetskopiere /data/web/ og sende den til en annen server, så du bruker en kommando som rsync-/data/web/ user @ server: /backups/data/web/ for å få det til å skje. .. men du vil gjerne hoppe over synkronisering av /data/web/cache/mappe. Når rsync går for å sjekke ekskluderingslisten for hvert element som den synkroniserer, vil den ikke sjekke /data/web/cache/ siden den opprinnelige rsync-kommandoen er basert i /data/web/-mappen. Det vil bare sjekke "cache /" mot listen. Så du må sette "cache" i listen, ikke hele banen. Eksempel:

rsync -a --exclude-fra = /data/-utelukkelser /data/web/ /backups/

Nå for å utelukke /data/web/-buffer og /data/web/-temp fra rsync ved hjelp av denne kommandoen, fjerner vi /data/web/-delen av banen og /data/-eksklusjonsfilen inneholder ganske enkelt dette:

cache * temp *

Du vil merke at jeg la til * i banen for å sikre at den samsvarer med alt som starter med "cache" i begynnelsen. Du kan bruke dette stjernemønsteret av mer nyttige grunner hvis du vil - si at du vil ekskludere alle. txt-filer fra å bli synkronisert. Du starter mønsteret med stjernen for å sørge for at det alltid samsvarer, og legg til dette:

*. txt

Det ville sikre at disse typer filer hoppes over under en synkronisering. Det er ganske enkelt utover det.

Eksklusive en enkelt gjenstand

Denne teknikken er mye mindre nyttig, men du kan bruke den på farten hvis du trenger det. Hvis du setter opp et skript for å bruke rsync, som du vanligvis er, bør du ta det ekstra minuttet for å ekskludere fra en filliste i stedet for å gjøre fremtidig vedlikehold enklere. Syntaxen er veldig lik:

rsync --exclude = relativ /path/to/ ekskludering / kilde / dest

Den samme relative banen bør gjelde her som ovenfor.