Hur man utesluter filer från Rsync
Rsync är en av de mest användbara verktygen för en serveradministratör, men den synkroniserar allt som standard, vilket kan vara irriterande om din ansökan skapar många tillfälliga 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 --utesluta-från = / sökväg / till / utslagning-fil / sökväg / till / källa / sökväg / till / dest
Den knepiga sak med rsync är att du måste använda en relativ sökväg när du försöker utesluta saker, för när det försöker matcha 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 -a / data / web / user @ server: / backup / data / web / för att göra det hända ... men du skulle verkligen vilja hoppa över att synkronisera / data / webb / 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 / webb / cache / eftersom ditt ursprungliga rsync-kommando är baserat i / data / webb / mapp. Det kommer bara att kontrollera "cache /" mot listan. Så du måste lägga "cache" i listan, inte hela sökvägen. Exempel:
rsync -a --exclude-from = / data / uteslutningar / data / web / / backups /
Nu för att utesluta / data / webb / cache och / data / web / temp från rsync med det här kommandot, skulle vi ta bort / data / webb / del av sökvägen och filen / data / uteslutningar skulle helt enkelt innehålla följande:
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 börja mönstret med stjärnan för att se till att alltid matchar och lägg till följande:
*.Text
Det skulle säkerställa att dessa typer av filer hoppas över under en synkronisering. Det är ganska enkelt bortom det.
Exklusive en enda artikel
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 mycket lika:
rsync --exclude = relativ / väg / till / uteslutning / källa / dest
Samma relativa sökväg bör gälla här som ovan.