Hoe bestanden uit te sluiten van Rsync
Rsync is een van de handigste hulpprogramma's voor een serverbeheerder, maar het synchroniseert alles standaard, wat vervelend kan zijn als uw applicatie veel tijdelijke bestanden maakt. Hier leest u hoe u bestanden uitsluit wanneer u rsync gebruikt.
Exclusief van een lijst in een bestand
Dit is de ideale methode om bestanden en mappen uit te sluiten, omdat je altijd de lijst kunt bewerken en dingen kunt aanpassen indien nodig. Hier is de syntaxis:
rsync --uitsluiten-from = / pad / naar / uitsluiting-file / pad / naar / bron / pad / naar / dest
Het lastige bij rsync is dat je een relatief pad moet gebruiken wanneer je dingen probeert uit te sluiten, want wanneer het probeert om de uitsluitingen te evenaren, zal het niet het eerste deel van het pad gebruiken voor de match ... het is raar.
Stel dat u probeert een back-up te maken van / data / web / en deze naar een andere server verzendt, dus u gebruikt een opdracht zoals rsync -a / data / web / user @ server: / backups / data / web / om het te maken gebeuren ... maar u wilt graag de / data / web / cache / map overslaan. Wanneer rsync naar uw uitsluitingslijst gaat voor elk item dat wordt gesynchroniseerd, wordt het niet gecontroleerd / data / web / cache / aangezien uw oorspronkelijke rsync-opdracht is gebaseerd op de map / data / web /. Het zal gewoon "cache /" aanvinken in de lijst. U moet dus "cache" in de lijst plaatsen, niet het volledige pad. Voorbeeld:
rsync -a --exclude-from = / data / exclusions / data / web / / backups /
Om nu / data / web / cache en / data / web / temp uit rsync uit te sluiten met deze opdracht, verwijderen we de / data / web / portie van het pad en het bestand / data / exclusions zou dit eenvoudigweg bevatten:
cache * temp *
Merk op dat ik de * aan het pad heb toegevoegd, zodat het overeenkomt met alles dat begint met "cache" aan het begin. U kunt dit sterrenpatroon om meer nuttige redenen gebruiken als u dat wilt - stel dat u wilt uitsluiten dat alle TXT-bestanden worden gesynchroniseerd. Je zou het patroon met de ster beginnen om ervoor te zorgen dat het altijd overeenkomt, en dit toevoegen:
*.tekst
Dat zou ervoor zorgen dat dit soort bestanden worden overgeslagen tijdens een synchronisatie. Het is vrij eenvoudig daarbuiten.
Exclusief één artikel
Deze techniek is veel minder handig, maar u kunt hem desgewenst on-the-fly gebruiken. Als u een script opstelt om rsync te gebruiken, wat u meestal bent, moet u in plaats daarvan de extra minuut nemen om uit te sluiten van een bestandslijst om toekomstig onderhoud eenvoudiger te maken. De syntaxis lijkt erg op:
rsync --exclude = relative / path / to / exclusion / source / dest
Hetzelfde relatieve pad zou hier moeten gelden zoals hierboven.