27Jun

Hoe bestanden uit te sluiten van Rsync

Rsync is een van de handigste hulpprogramma's voor een serverbeheerder, maar het synchroniseert standaard met alles , wat vervelend kan zijn als uw toepassing veel tijdelijke bestanden maakt. Hier leest u hoe u bestanden uitsluit wanneer u rsync gebruikt.

Uitsluiting van een lijst in een bestand

Dit is de ideale methode om bestanden en mappen uit te sluiten, omdat u de lijst altijd kunt bewerken en indien nodig dingen kunt aanpassen. Hier is de syntaxis:

rsync --exclude-from = /path/to/-uitsluitingsbestand /path/to/-bron /path/to/ dest

Het lastige bij rsync is dat je een relatief pad moet gebruiken wanneer je dingen probeert uit te sluiten, omdat wanneer het probeertPas de uitsluitingen aan het zal het eerste deel van het pad voor de wedstrijd niet gebruiken. .. het is raar.

Stel dat u bijvoorbeeld probeert /data/web/ te back-uppen en naar een andere server te sturen, dus u gebruikt een opdracht zoals rsync -a /data/web/ user @ server: /backups/data/web/ om het te laten gebeuren. .. maar u wilt de /data/web/cache/ liever overslaanmap. Wanneer rsync naar uw uitsluitingslijst gaat voor elk item dat wordt gesynchroniseerd, wordt /data/web/cache/ niet gecontroleerd, omdat uw oorspronkelijke rsync-opdracht is gebaseerd op de map /data/web/.Het zal gewoon "cache /" aanvinken in de lijst. Dus u moet "cache" in de lijst plaatsen, niet het volledige pad. Voorbeeld:

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

Nu om de /data/web/-cache en /data/web/ temp uit rsync uit te sluiten met deze opdracht, zouden we het /data/web/-gedeelte van het pad verwijderen en zou het /data/-uitsluitingsbestand dit eenvoudigweg bevatten:

cache * temp *

Merk op dat ik de * aan het pad heb toegevoegd om ervoor te zorgen dat het overeenkomt met alles dat begint met "cache" aan het begin. Je kunt dit sterrenpatroon om meer bruikbare redenen gebruiken als je wilt - stel dat je wilt uitsluiten dat alle. txt-bestanden worden gesynchroniseerd. U zou het patroon met de ster beginnen om ervoor te zorgen dat dit altijd overeenkomt en dit toevoegen:

*. txt

Dat zou ervoor zorgen dat dat soort bestanden tijdens een synchronisatie worden overgeslagen. Het is vrij eenvoudig daarbuiten.

Een enkel artikel uitsluiten

Deze techniek is veel minder handig, maar u kunt het on-the-fly gebruiken als dat nodig is. Als u een script opstelt om rsync te gebruiken, wat u gewoonlijk 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 elkaar:

rsync --exclude = relative /path/to/-uitsluiting / source / dest

Hetzelfde relatieve pad moet hier van toepassing zijn, zoals hierboven.