Android

Hoe rsync te gebruiken voor lokale en externe gegevensoverdracht en synchronisatie

Setting up a Gentoo Private Rsync Mirror

Setting up a Gentoo Private Rsync Mirror

Inhoudsopgave:

Anonim

Rsync is een snel en veelzijdig opdrachtregelhulpprogramma dat bestanden en mappen synchroniseert tussen twee locaties via een externe shell, of van / naar een externe Rsync-daemon. Het biedt snelle incrementele bestandsoverdracht door alleen de verschillen tussen de bron en de bestemming over te dragen.

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 cp opdrachten voor dagelijks gebruik.

In deze tutorial laten we u zien hoe u rsync kunt gebruiken door praktische voorbeelden en gedetailleerde uitleg van de meest voorkomende rsync opties.

Rsync installeren

Het hulpprogramma rsync is vooraf geïnstalleerd op de meeste Linux-distributies en macOS. U kunt controleren of het op uw systeem is geïnstalleerd door te typen:

rsync --version

rsync version 3.1.2 protocol version 31

Installeer Rsync op Ubuntu en Debian

sudo apt install rsync

Installeer Rsync op CentOS en Fedora

sudo yum install rsync

Rsync-opdrachtsyntaxis

Laten we eerst de basissyntaxis bekijken voordat we ingaan op het gebruik van de opdracht rsync .

De uitdrukkingen van het hulpprogramma rsync hebben de volgende vorm:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - De rsync-opties. SRC - Bronmap. DEST - Bestemmingsmap. USER - Externe gebruikersnaam. HOST - Externe hostnaam of IP-adres.

rsync biedt een aantal opties die elk aspect van zijn gedrag regelen. De meest gebruikte opties zijn:

  • -a , --archive , archiefmodus, equivalent aan -rlptgoD . Deze optie vertelt rsync om mappen recursief te synchroniseren, speciale en blokkeer apparaten over te dragen, symbolische koppelingen, aanpassingstijden, groep, eigendom en machtigingen te behouden. -z , - --compress . Deze optie dwingt rsync om de gegevens te comprimeren wanneer deze naar de doelmachine worden verzonden. Gebruik deze optie alleen als de verbinding met de externe machine traag is. -P , gelijk aan - --partial --progress . Wanneer deze optie wordt gebruikt, zal rsync een voortgangsbalk tonen tijdens de overdracht en om de gedeeltelijk overgedragen bestanden te bewaren. Het is handig bij het overbrengen van grote bestanden via trage of instabiele netwerkverbindingen. --delete . Wanneer u deze optie gebruikt, verwijdert rsync externe bestanden van de doellocatie. Het is handig voor spiegelen. -q , - --quiet . Gebruik deze optie als u niet-foutmeldingen wilt onderdrukken. -e . Met deze optie kunt u een andere externe shell kiezen. Standaard is rsync geconfigureerd om ssh te gebruiken.

Basis Rsync-gebruik

Om een ​​enkel bestand van het ene naar een andere lokale locatie te kopiëren, voert u de volgende opdracht uit:

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

De gebruiker die de opdracht uitvoert, moet leesrechten hebben op de doellocatie en schrijfrechten op de bestemming hebben.

Als u de bestandsnaam weglaat van de doellocatie, wordt het bestand met de huidige naam gekopieerd. Als u het bestand onder een andere naam wilt opslaan, geeft u de nieuwe naam op in het bestemmingsgedeelte:

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

In het onderstaande voorbeeld maken we een lokale back-up van onze websitebestanden:

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

Als de doelmap niet bestaat, maakt rsync deze aan.

Het is vermeldenswaard dat rsync een andere behandeling geeft met een slash / . Als u een slash aan de bronmap toevoegt, wordt alleen de inhoud van de map naar de doelmap gekopieerd. Wanneer de volgende schuine streep wordt weggelaten, kopieert rsync naar de doelmap.

Hoe Rsync te gebruiken om gegevens van / naar een externe machine te synchroniseren

Wanneer u rsync voor externe overdracht gebruikt, moet dit op zowel de bron- als de doelmachine worden geïnstalleerd. De nieuwe versies van rsync zijn geconfigureerd om SSH te gebruiken als standaard externe shell.

In het volgende voorbeeld brengen we een directory over van een lokale naar een externe computer:

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

Als u gegevens van een afstandsbediening naar een lokale machine wilt overbrengen, moet u de externe locatie als bron gebruiken:

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

Als SSH op de externe host luistert naar een andere poort dan de standaard 22, kunt u de poort opgeven 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 gegevens wordt aanbevolen om de opdracht rsync voeren in een schermsessie of de optie -P gebruiken:

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

Bestanden en mappen uitsluiten

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

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

In het volgende voorbeeld sluiten we de node_modules en tmp die zich in de src_directory :

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

De tweede optie is om het argument --exclude-from te gebruiken en de bestanden en mappen op te geven die u in een bestand wilt uitsluiten.

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

node_modules tmp

Conclusie

In deze zelfstudie hebt u geleerd 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 gebruikerspagina.

Als je nog vragen hebt, kun je een reactie achterlaten.

rsync-terminal