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 opdrachten en procedure die in dit artikel worden genoemd, uitgelegd op een Ubuntu 20.04 LTS. U hebt de opdrachtregelterminal nodig om bestanden te kopiëren met rsync. Gebruik de sneltoets Ctrl+Alt+T om de Terminal-toepassing op de opdrachtregel te openen.
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:
$sudogeschiktinstallerenrsync
Hier 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: uitgang 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.
Als u bijvoorbeeld een enkel bestand file1.txt wilt kopiëren van de huidige locatie die de Home-directory is naar de ~/Documents-directory, zou de opdracht zijn:
$rsync/huis/van mening zijn/bestand1.txt/huis/van mening zijn/DocumentenOpmerking: 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
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.txt en file3.txt te kopiëren van de hoofdmap naar de map ~/Documents, zou de opdracht zijn:
$rsync/huis/van mening zijn/bestand2.txt/huis/van mening zijn/bestand3.txt/huis/van mening zijn/DocumentenOm 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 van de Home-directory die eindigen op de extensie .zip te kopiëren naar de directory ~/Documents, gebruiken we:
$rsync/huis/van mening zijn/ *.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 voorbeeldmap te kopiëren naar de map test/ in de thuismap, zou de opdracht zijn:
$rsync-van /huis/van mening zijn/steekproef/huis/van mening zijn/toetsOpmerking: Door / achter de brondirectory op te geven, wordt alleen de inhoud van de directory 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 ons bronmapvoorbeeld ook naar de doelmap is gekopieerd (omdat we voorbeeld hebben gebruikt in plaats van voorbeeld/ 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-tot --max-grootte=2000k/huis/van mening zijn/Downloads/ * /huis/van mening zijn/DocumentenDeze 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-tot --min-maat= 5M/huis/van mening zijn/Downloads/ /huis/van mening zijn/DocumentenDeze opdracht kopieert alle bestanden van ~/Downloads naar de map ~/Documents, behalve de bestanden die kleiner zijn dan 5M.
Bestanden uitsluiten
Tijdens het kopiëren van bestanden van de ene directory 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 .zip-bestanden uit te sluiten tijdens het kopiëren van bestanden van ~/Downloads naar de map ~/Documents, zou de opdracht zijn:
$rsync-tot --uitsluiten='*.zip' /huis/van mening zijn/Downloads/ /huis/van mening zijn/DocumentenKopieer 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:
$sshremote_user@remote_ip
De algemene syntaxis voor het kopiëren van bestanden en mappen naar een extern systeem met rsync:
Als u bijvoorbeeld een enkel bestand file.txt van ~/Downloads naar de map ~/Documents op afstand wilt kopiëren, zou de opdracht zijn:
$rsync-v~/Downloads/bestand1.txt umara@192.168.72.164:~/DocumentenOp 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 umra@192.168.72.164:~/Downloads/monstersU kunt de bestanden en mappen ook van de externe computer naar uw lokale computer kopiëren. Om bijvoorbeeld een file2.txt van het externe systeem naar het lokale systeembureaublad te kopiëren:
$rsync-vumara@192.168.72.164:~/Downloads/file2.txt ~/Bureaublad/Evenzo, om een map van het externe systeem naar het lokale systeem te kopiëren:
$rsync-rvumara@192.168.72.164:~/Downloads/voorbeeld ~/Bureaublad/toetsU kunt ook alle opties gebruiken, zoals –max-size, –min-size, –exclude en andere terwijl u bestanden kopieert 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.