In dit artikel leggen we uit hoe je rsync kunt gebruiken om bestanden te kopiëren met enkele praktische voorbeelden. We zullen ook het gebruik van rsync uitleggen bij het kopiëren van een enkel bestand, meerdere bestanden en directory naar zowel lokale als externe systemen. We zullen bespreken hoe u Rsync kunt gebruiken om:
- Kopieer bestand/map binnen het lokale systeem
- Kopieer bestand/map van lokaal naar het externe systeem
- Kopieer bestand/map van het externe systeem naar lokaal
We hebben de in dit artikel genoemde commando's en procedure uitgelegd op een Ubuntu 20.04 LTS. U hebt de opdrachtregelterminal nodig om bestanden te kopiëren met rsync. Om de opdrachtregel Terminal-toepassing te openen, gebruikt u de sneltoets Ctrl+Alt+T.
Rsync . installeren
Rsync is vooraf geïnstalleerd in Ubuntu 20.04 LTS. Als het echter per ongeluk van het systeem wordt verwijderd, kunt u het als volgt installeren:
$ sudo apt install rsyncHier zijn enkele van de veelgebruikte opties die kunnen worden gebruikt met rsync:
-a: archiefmodus
-v: toont details van het kopieerproces
-p: toont de voortgangsbalk
-r: kopieert gegevens recursief
-z: comprimeert gegevens
-q: output onderdrukken
Kopieer bestanden en mappen lokaal
De algemene syntaxis van rsync is:
$ rsync [optie] [bron] [bestemming]Kopieer een enkel bestand lokaal
Als u een bestand van de ene naar de andere locatie binnen uw systeem wilt kopiëren, kunt u dit doen door te typen rsync gevolgd door de naam van het bronbestand en de doelmap.
Om bijvoorbeeld een enkel bestand "file1" te kopiëren.txt" van de huidige locatie die de Home-map is naar de ~/Documents-map, zou de opdracht zijn:
$ rsync /home/tin/file1.txt /home/blik/Documenten
Opmerking: in plaats van "/home/tin/file1".txt", kunnen we ook "file1" typen omdat we momenteel in de homedirectory werken. We kunnen ook ~/Documents gebruiken in plaats van het volledige pad te vermelden als "/home/tin/Documents".
Meerdere bestanden lokaal kopiëren files
Als u meerdere bestanden tegelijk van de ene naar de andere locatie binnen uw systeem wilt kopiëren, kunt u dit doen door te typen rsync gevolgd door de naam van de bronbestanden en de doelmap.
Om bijvoorbeeld de bestanden "file2" te kopiëren.txt" en "file3".txt" van de hoofdmap naar de map ~/Documents, zou de opdracht zijn:
$ rsync /home/tin/file2.txt /home/tin/file3.txt /home/tin/Documenten
Om alle bestanden met dezelfde extensie te kopiëren, kunt u een sterretje (*) gebruiken in plaats van de bestandsnamen afzonderlijk op te geven. Om bijvoorbeeld alle bestanden uit de Home-map te kopiëren die eindigen op “.zip” extensie naar de ~/Documents directory, zullen we gebruiken:
$ rsync /home/tin/*.zip ~/DocumentenKopieer mappen lokaal
Als u een map met zijn submap en alle inhoud van de ene naar de andere locatie binnen uw systeem wilt kopiëren, kunt u dit doen door te typen rsync gevolgd door de bron- en doelmap.
Om bijvoorbeeld de map "sample" naar de map "test/" in de Home-map te kopiëren, zou de opdracht zijn:
$ rsync -av /home/tin/sample /home/tin/testOpmerking: Door "/" op te geven na de bronmap wordt alleen de inhoud van de map gekopieerd. Als we de "/" na de bronmap niet specificeren, wordt de bronmap ook gekopieerd naar de doelmap.
Zoals in de volgende uitvoer, kun je zien dat onze bronmap "sample" ook naar de doelmap wordt gekopieerd (omdat we "sample" hebben gebruikt in plaats van "sample/" als bronmap).
Rsync ondersteunt incrementele overdracht, zoals u in de bovenstaande uitvoer kunt zien dat het alleen de bestanden overdraagt die nieuw of bijgewerkt zijn.
Bestanden kopiëren op basis van maximale grootte
Tijdens het kopiëren kunnen we ook de maximale grootte van bestanden specificeren die gekopieerd kunnen worden met de “-max-size” optie. Als u bijvoorbeeld bestanden wilt kopiëren die niet groter zijn dan 2000k van ~/Downloads naar de map ~/Documents, zou de opdracht zijn:
$ rsync -a --max-size=2000k /home/tin/Downloads/* /home/tin/DocumentsDeze opdracht kopieert alle bestanden van ~/Downloads naar de map ~/Documents, behalve de bestanden die groter zijn dan 2000k.
Bestanden kopiëren op basis van minimale grootte
Op dezelfde manier kunnen we ook de minimale grootte van bestanden specificeren die gekopieerd kunnen worden met de “-min-size” optie. Om bijvoorbeeld de bestanden van niet minder dan 5M te kopiëren van ~/Downloads naar de map ~/Documents, zou de opdracht zijn:
$ rsync -a --min-size=5M /home/tin/Downloads/ /home/tin/DocumentsDeze opdracht kopieert alle bestanden van ~/Downloads naar de map ~/Documents, behalve die kleiner dan 5M.
Bestanden uitsluiten
Tijdens het kopiëren van bestanden van de ene map naar de andere, kunt u sommige bestanden uitsluiten met de optie "-exclude" gevolgd door de bestandsnaam of de extensie van het bestandstype.
Om bijvoorbeeld alle . uit te sluiten .zip-bestanden tijdens het kopiëren van bestanden van ~/Downloads naar de map ~/Documents, zou de opdracht zijn:
$ rsync -a --exclude="*.zip" /home/tin/Downloads/ /home/tin/DocumentsKopieer bestanden en mappen op afstand
Met Rsync kunt u een enkel bestand, meerdere bestanden en mappen naar een extern systeem kopiëren. Voor het op afstand kopiëren van bestanden en mappen heeft u het volgende nodig:
- Rsync geïnstalleerd op zowel lokaal als extern systeem
- SSH-toegang tot het externe systeem
- Gebruikerswachtwoord op afstand
Voordat u bestanden kopieert met rsync, moet u ervoor zorgen dat u via SSH toegang hebt tot het externe systeem:
$ ssh remote_user@remote_ip
De algemene syntaxis voor het kopiëren van bestanden en mappen naar een extern systeem met rsync:
Om bijvoorbeeld een enkel bestand "bestand" te kopiëren.txt" van ~/Downloads naar de map ~/Documents van het externe systeem, zou de opdracht zijn:
$ rsync -v ~/Downloads/bestand1.txt [email protected]:~/Documenten
Op dezelfde manier kopieert u de map "~/Downloads/files" in een lokaal systeem met zijn submap en alle inhoud naar de map "~/Downloads/samples" op het externe systeem:
$ rsync -rv ~/Downloads/bestanden [email protected]:~/Downloads/voorbeelden
U kunt ook de bestanden en mappen kopiëren van de externe computer naar uw lokale computer. Om bijvoorbeeld een "file2" te kopiëren.txt" van het externe systeem naar het lokale systeembureaublad:
$ rsync -v [email protected]:~/Downloads/bestand2.txt ~/Bureaublad/
Evenzo, om een map van het externe systeem naar het lokale systeem te kopiëren:
$ rsync -rv [email protected]:~/Downloads/voorbeeld ~/Desktop/testU kunt ook alle opties gebruiken, zoals -max-size, -min-size, -exclude en andere tijdens het kopiëren van bestanden van/naar het externe systeem.
Rsync is een geweldige tool voor het kopiëren van bestanden van bron naar bestemming, zowel lokaal als op afstand. Het bevat een groot aantal opties die u flexibiliteit en controle geven tijdens het overbrengen van bestanden van/naar het externe systeem.