27Jun

Hur man utesluter filer från Rsync

click fraud protection

Rsync är ett av de mest användbara verktygen för en serveradministratör, men det synkroniserar allt som standard, vilket kan vara irriterande om din applikation skapar många temporära filer. Så här utesluter du filer när du använder rsync.

Exklusive från en lista i en fil

Det här är den perfekta metoden för att utesluta filer och mappar eftersom du alltid kan redigera listan och justera om det behövs. Här är syntaxen:

rsync --exclude-from = /path/to/ uteslutningsfil /path/to/-källa /path/to/ dest

Den knepiga sak med rsync är att du behöver använda en relativ sökvägen när du försöker utesluta saker, för när det försökermatcha uteslutningarna kommer det inte att använda den första delen av sökvägen för matchen. .. det är konstigt.

Säg till exempel att du försöker säkerhetskopiera /data/web/ och skicka den till en annan server, så du använder ett kommando som rsync-/data/web/ user @ server: /backups/data/web/ för att få det att hända. .. men du skulle verkligen vilja hoppa över att synkronisera /data/web/cache/mapp. När rsync går för att kontrollera din exkluderingslista för varje objekt som den synkroniserar, kommer den inte att kontrollera /data/web/cache/ eftersom ditt ursprungliga rsync-kommando är baserat i mappen /data/web/.Det kommer bara att kontrollera "cache /" mot listan. Så du måste lägga "cache" i listan, inte hela sökvägen. Exempel:

instagram viewer

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

För att utesluta /data/web/-cache och /data/web/ temp från rsync med det här kommandot skulle vi ta bort /data/web/-delen av sökvägen och /data/-exklusionsfilen skulle helt enkelt innehålla detta:

cache * temp *

Du noterar att jag lade till * i sökvägen för att se till att den matchar allt som börjar med "cache" i början. Du kan använda detta stjärnmönster av mer användbara skäl om du vill - säg att du vill utesluta alla. txt-filer från att synkroniseras. Du skulle starta mönstret med stjärnan för att se till att alltid matchar och lägg till följande:

*. txt

Det skulle se till att dessa typer av filer hoppas över under en synkronisering. Det är ganska enkelt bortom det.

Exklusive ett enda föremål

Denna teknik är mycket mindre användbar, men du kan använda den på flugan om du behöver. Om du skapar ett skript för att använda rsync, vilket du vanligtvis är, bör du ta extra minuten att utesluta från en fillista istället för att göra det framtida underhållet enklare. Syntaxen är väldigt lik:

rsync --exclude = relativ /path/to/ uteslutning / källa / dest

Samma relativa sökväg bör gälla här som ovan.