Hvordan ekskludere filer fra Rsync

Innholdsfortegnelse:

Hvordan ekskludere filer fra Rsync
Hvordan ekskludere filer fra Rsync
Anonim
Image
Image

Rsync er en av de mest nyttige verktøyene for en serveradministrator, men den synkronisereralt som standard, noe som kan være irriterende hvis søknaden din 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 justere ting om nødvendig. Her er syntaksen:

rsync - -exclude-from=/path/to/exclusion-file /path/to/source /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 å matche 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 -a / data / web / user @ server: / backups / data / web / for å gjøre det 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 kontrollere / data / web / cache / siden den opprinnelige rsync-kommandoen er basert i / data / web / mappe. Det vil bare sjekke "cache /" mot listen. Så du må sette "cache" i listen, ikke hele banen. Eksempel:

rsync -a --exclude-from=/data/exclusions /data/web/ /backups/

Nå for å ekskludere / data / web / cache og / data / web / temp fra rsync ved hjelp av denne kommandoen, fjerner vi / data / web / del av banen og filen / data / ekskluderingsfilen vil ganske enkelt inneholde 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å fluen 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=relative/path/to/exclusion /source /dest

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

Anbefalt: