Hoe rsync te gebruiken om bestanden te kopiëren

How Use Rsync Copy Files



Rsync is een opdrachtregelprogramma in Linux dat wordt gebruikt om bestanden van een bronlocatie naar een bestemmingslocatie te kopiëren. U kunt bestanden, mappen en het volledige bestandssysteem kopiëren en de bestanden tussen verschillende mappen synchroniseren. Het doet meer dan alleen de bestanden kopiëren. Het vermindert de hoeveelheid gegevens die via het netwerk wordt verzonden door alleen de bestanden te verzenden die nieuw of bijgewerkt zijn. Daarom wordt het beschouwd als een geweldig hulpprogramma voor het kopiëren en back-uppen van bestanden. Rsync ondersteunt ook het kopiëren van bestanden naar een extern systeem via SSH.

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/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

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/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 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 ~/Documenten

Kopieer 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/toets

Opmerking: 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/Documenten

Deze 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/Documenten

Deze 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/Documenten

Kopieer 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:

$rsync[optie] [bron] [gebruiker op afstand@remoteip:bestemming]

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:~/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 umra@192.168.72.164:~/Downloads/monsters

U 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/toets

U 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.