Rsync Command in Linux with Examples

rsync is een snel en veelzijdig command-line hulpprogramma voor het synchroniseren van bestanden en mappen tussen twee locaties via een remote shell, of van/naar een remote Rsync daemon. Het biedt snelle incrementele bestandsoverdracht door alleen de verschillen tussen de bron en de bestemming over te brengen.

Rsync kan worden gebruikt voor het spiegelen van gegevens, incrementele back-ups, het kopiëren van bestanden tussen systemen, en als vervanging voor scp, sftp, en cpcommando’s.

Dit artikel legt uit hoe rsync te gebruiken door middel van praktische voorbeelden en gedetailleerde uitleg van de meest voorkomende rsync opties.

Installeren van Rsync #

Het rsync hulpprogramma is voorgeïnstalleerd op de meeste Linux distributies en macOS. Als rsync niet op uw systeem is geïnstalleerd, kunt u het eenvoudig installeren met de pakketbeheerder van uw distributie.

Rsync installeren op Ubuntu en Debian #

sudo apt install rsync

Rsync installeren op CentOS en Fedora #

sudo yum install rsync

Rsync commando syntax #

Voordat we ingaan op hoe het rsync commando te gebruiken, laten we beginnen met het doornemen van de basis syntaxis.

De rsync utility expressies hebben de volgende vorm:

Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC... 
  • OPTION – De rsync opties.
  • SRC – Bron directory.
  • DEST – Bestemmings directory.
  • USER – Gebruikersnaam op afstand.
  • HOST – Hostnaam of IP-adres op afstand.

rsync biedt een aantal opties die bepalen hoe het commando zich gedraagt. De meest gebruikte opties zijn:

  • -a, --archive, archiefmodus, equivalent aan -rlptgoD. Deze optie vertelt rsync om mappen recursief te synchroniseren, speciale en blok apparaten over te dragen, symbolische links, wijzigingstijden, groepen, eigendom en permissies te behouden.
  • -z, --compress. Deze optie dwingt rsync om de gegevens te comprimeren als ze naar de doelmachine worden gestuurd. Gebruik deze optie alleen als de verbinding met de machine op afstand traag is.
  • -P, gelijk aan --partial --progress. Wanneer deze optie wordt gebruikt, toont rsync een voortgangsbalk tijdens de overdracht en bewaart de gedeeltelijk overgedragen bestanden. Dit is nuttig bij de overdracht van grote bestanden over langzame of onstabiele netwerkverbindingen.
  • --delete. Wanneer deze optie wordt gebruikt, verwijdert rsync vreemde bestanden van de plaats van bestemming. Het is nuttig voor mirroring.
  • -q, --quiet. Gebruik deze optie als u niet-foutmeldingen wilt onderdrukken.
  • -e. Met deze optie kunt u een andere shell op afstand kiezen. Standaard is rsync geconfigureerd om ssh te gebruiken.

Basic Rsync Usage #

Het meest eenvoudige gebruik van rsync is het kopiëren van een enkel bestand van de ene naar een andere lokale lokatie. Hier is een voorbeeld:

rsync -a /opt/filename.zip /tmp/

De gebruiker die het commando uitvoert moet leesrechten hebben op de bronlocatie en schrijfrechten op de bestemmingslocatie.

Om de bestandsnaam van de bestemmingslocatie te kopiëren, wordt het bestand met de huidige naam gekopieerd. Als u het bestand onder een andere naam wilt opslaan, geeft u de nieuwe naam op het bestemmingsgedeelte op:

rsync -a /opt/filename.zip /tmp/newfilename.zip

De echte kracht van rsync komt bij het synchroniseren van mappen. Het onderstaande voorbeeld laat zien hoe een lokale backup van website bestanden gemaakt kan worden:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Als de doel directory niet bestaat, zal rsync deze aanmaken.

Het is de moeite waard om te vermelden dat rsync een andere behandeling geeft aan de bron directories met een schuine streep (/). Als de bron-directory een schuine streep heeft, kopieert de opdracht alleen de inhoud van de directory naar de doel-directory. Wanneer de schuine streep wordt weggelaten, kopieert rsync de bron directory in de doel directory.

Gebruik rsync om gegevens te synchroniseren van/naar een machine op afstand #

Wanneer rsync wordt gebruikt om gegevens op afstand over te dragen, moet het worden geïnstalleerd op zowel de bron als de doel machine. De nieuwe versies van rsync zijn geconfigureerd om SSH te gebruiken als standaard remote shell.

In het volgende voorbeeld, verplaatsen we een directory van een lokale naar een machine op afstand:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Als u geen wachtwoordloze SSH-login heeft ingesteld op de machine op afstand, wordt u gevraagd het gebruikerswachtwoord in te voeren.

Om gegevens van een externe naar een lokale machine over te brengen, gebruikt u de externe locatie als bron:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Als SSH op de externe host op een andere poort luistert dan de standaardpoort 22 , geeft u de poort op met de optie -e:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Bij het overbrengen van grote hoeveelheden data is het aan te bevelen om het rsync commando binnen een schermsessie uit te voeren of om de -P optie te gebruiken:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Bestanden en directories uitsluiten #

Er zijn twee opties om bestanden en directories uit te sluiten. De eerste optie is om het --exclude argument te gebruiken en de bestanden en directories die u wilt uitsluiten op de opdrachtregel te specificeren.

Wanneer u bestanden of directories uitsluit, moet u hun relatieve paden naar de bronlocatie gebruiken.

In het volgende voorbeeld ziet u hoe u de directory’s node_modules en tmp kunt uitsluiten:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

De tweede optie is om de optie --exclude-from te gebruiken en de bestanden en directory’s die u wilt uitsluiten in een bestand op te geven.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modulestmp

Conclusie #

We hebben u laten zien hoe u Rsync kunt gebruiken om bestanden en mappen te kopiëren en te synchroniseren. Er is nog veel meer te leren over Rsync op de Rsync-gebruikershandleidingpagina.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.