hoe rsync te gebruiken met voorbeelden

Rsync is een populair hulpmiddel voor het synchroniseren van bestanden, zowel lokaal als op afstand. In tegenstelling tot andere synchronisatietools gebruikt rsync een interessant algoritme dat het bandbreedteverbruik minimaliseert. Het verplaatst eenvoudig het gedeelte van het bestand(en) dat (die) zijn veranderd.

het is een krachtig hulpprogramma dat in veel situaties kan worden gebruikt. In dit artikel, Ik zal laten zien hoe aan de slag met rsync met een demonstratie. De demonstratie zal worden uitgevoerd op Ubuntu 18.04.

Rsync

Rsync staat voor de term remote sync. Ondanks de naam kan het bestandssynchronisatie op afstand en lokaal verwerken. De term rsync wordt ook gebruikt om te verwijzen naar het rsync-protocol dat rsync gebruikt voor synchronisatie. In dit artikel geeft rsync altijd het gereedschap aan, niet het protocol.

vanwege zijn enorme populariteit is rsync beschikbaar op bijna elk Linux-en UNIX-achtig systeem. Er is een goede kans dat het voorgeïnstalleerd wordt geleverd. Zo niet, doe een beetje onderzoek naar het installeren van rsync in uw systeem.

Hier is een shortlist van functies die rsync biedt.

  • map kopiëren
  • eenvoudige back-upconfiguratie
  • kan werken over SSH
  • kan draaien als daemon/server
  • bestandsrechten retentie

Rsync gebruik

voordat we in rsync springen, hebben we enkele dummy-bestanden nodig om mee te werken. Laten we eerst een dummy directory maken.

$ mkdir-V primaire

eenmaal aangemaakt, is het tijd om een handvol dummy-bestanden aan te maken. Om een bestand te maken, gebruik ik het touch commando. Meer informatie over de touch-opdracht.

$ touch dummy{1..20}

Voila! We zijn nu klaar om rsync te gebruiken om acties uit te voeren met behulp van deze dummy bestanden.

Rsync Opdrachtstructuur

Rsync gebruikt de volgende opdrachtstructuur.

$ rsync <optie><src><bestemming>

Sync lokale directories

Nu is het tijd om rsync gebruiken voor het synchroniseren van bestanden over meerdere bestemmingen. In dit voorbeeld zullen we de inhoud van dir_primary synchroniseren met dir_target.

$ mkdir-V target

vertel rsync om de inhoud van beide mappen te synchroniseren.

$ rsync-v-r primary/ target

Hier hebben we twee verschillende argumenten gebruikt.

– v: vertelt rsync om in uitgebreide modus te draaien
– r: recursief, vereist voor directorysynchronisatie.

in het volgende voorbeeld zullen we een andere vlag gebruiken.

$ rsync-v-A primair/ doel

-a: een combinatievlag die staat voor”Archief”.

Met deze vlag synchroniseert rsync de inhoud recursief met behoud van symbolische, speciale/apparaatbestanden, wijzigingstijden, bestandsrechten, groep, eigenaar, enz. Het wordt vaker gebruikt dan de” – r ” vlag. Voor archivering is dit een meer aanbevolen methode.

merkte u dat in alle commando ‘ s die we tot nu toe hebben uitgevoerd, in het geval van source, we altijd de “/” achter de naam van de directory behouden? Dit is om rsync te vertellen dat de bron alle inhoud van de brondirectory is. Als de ” / ” aan het einde van de bronmap niet wordt gebruikt, zal rsync gewoon een kopie van de bronmap maken in plaats van de inhoud ervan.

laten we het eens bekijken met een voorbeeld.

$ rsync-v-A primair doel

controleer het uitvoerresultaat.

$ tree target/

meestal hebben we dit niet nodig. Echter, afhankelijk van de situatie, het kan van pas komen.

rsync test run

voordat u een rsync-opdracht uitvoert, is het altijd belangrijk om te controleren of het commando de actie uitvoert zoals verwacht. Als je de rsync actie wilt testen voor een bepaald commando, gebruik dan de “-n” of “-dry-run” vlag.

$ rsync-avn primair/ doel

$ rsync-avn primair doel

Hier toont de uitvoer wat rsync zou uitvoeren als het commando daadwerkelijk werd uitgevoerd. Wanneer je test, vergeet dan niet om de “-v” vlag te gebruiken om een nauwkeurige weergave te krijgen van wat er gebeurt.

Rsync over een externe verbinding

Dit is een andere interessante functie die rsync ondersteunt. Als uw back-uplocatie ergens op afstand is, kunt u eenvoudig rsync configureren om een back-up uit te voeren op de externe locatie via SSH. Echter, beide machines moeten rsync geïnstalleerd hebben. Bovendien moeten beide systemen ook SSH-sleutels hebben ingesteld.

klaar? Laten we beginnen. Eerst wordt het archief gesynchroniseerd.

$ rsync-a <local_dir><gebruikersnaam><andere_computer><
destination_dir>

Hier is deze operatie heet een “push” want het duwt een map van het lokale systeem naar een andere remote systeem. Het tegenovergestelde staat bekend als”pull”.

$ rsync-a <gebruikersnaam><andere_computer><source_dir><local_dir>

Rsync behandelt het eerste argument als de bron, de tweede als de bestemming.

handige rsync-opties

Rsync ondersteunt een ton aan opties. Ze dienen allemaal hun eigen doel. Echter, voor het grootste deel, slechts een handvol van hen worden gebruikt de meeste van de tijd. In deze sectie, laten we eens een kijkje op een aantal nuttige rsync opties.

meestal zijn de bestanden die u wilt synchroniseren niet gecomprimeerd. Met compressie kunt u zowel tijd als bandbreedte besparen ten koste van een beetje extra verwerkingskracht. Rsync biedt compressie standaard. Om gecomprimeerde synchronisatie uit te voeren, gebruik je de “-z” vlag.

$ rsync -avz <bron><bestemming>

Deze interessante vlag combineert de functie van zowel de “vooruitgang” en “gedeeltelijke” vlag. De eerste is om een voortgangsbalk van de overdracht te tonen en de tweede is om te hervatten onderbroken overdracht. Beide functies worden gecombineerd in de” – P ” vlag.

$ rsync -avzP <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.

$ rsync -avzP <bron><bestemming>

Hier rsync niet opnieuw uploaden van de bestanden. In plaats daarvan sloeg het die over die helemaal niet veranderden. In dit voorbeeld, het overgeslagen alle bestanden als ze allemaal aanwezig zijn in de doelmap.

Wat als u een bestand uit de bronmap hebt verwijderd? Standaard zal rsync niets verwijderen uit de doelmap. Om rsync bestanden verwijderen te forceren, gebruik je de” – delete ” vlag. Gebruik echter de dry run om te testen of het commando werkt zoals u wilt.

$ rsync -avn –delete <bron><bestemming>

standaard zal rsync sync elk bestand/map van de bron naar de bestemming directory. In bepaalde situaties wilt u mogelijk bepaalde bestanden van synchronisatie opnemen/uitsluiten. Rsync biedt handige opties zoals – – exclude “en” –include ” om bepaalde bestanden uit te sluiten/include. Geef het bestandspatroon door als de waarde voor deze argumenten.

$ rsync-avn –exclude=<patroon> –include=<patroon>

u kunt ook de grootste bestandsgrootte definiëren die rsync moet synchroniseren. Om dat te doen, gebruik de “–max-size” vlag gevolgd door de bestandsgrootte.

$ rsync -avn –max-size=’10’ <bron><bestemming>

Rsync is een andere interessante functie in haar mouw. Het bronbestand niet langer nodig na het synchroniseren? Rsync kan dat, geen probleem. Echter, zorg ervoor dat u niet rsync met “-delete” vlag. Anders zal rsync de gesynchroniseerde bestanden van de bestemming verwijderen!

$ rsync -av –remove-bron-bestanden <bron><bestemming>

Laatste gedachten

Dit zijn slechts enkele veelvoorkomende en eenvoudige scenario van rsync gebruik. Het biedt veel meer dan dat. Het is mogelijk om rsync operaties te automatiseren met behulp van rsync daemon of andere scripting. Hopelijk, deze gids was nuttig bij het aan de slag met rsync.

geïnteresseerd in meer rsync? Nou, je kunt rsync gebruiken als een bestand copier. Het is efficiënter en intelligenter dan cp. Meer diepgaande functies en gebruik kan worden gevonden in rsync man page.

$ man rsync

Enjoy!



Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.