15 Rsync-voorbeelden

15 Rsync Voorbeelden



Het overbrengen van bestanden van de ene locatie naar een andere locatie is een veel voorkomende taak voor de Linux-gebruiker. Er zijn veel opties beschikbaar in Linux om deze taak uit te voeren; 'rsync' is er een van. De volledige vorm van 'rsync' is 'Remote Sync'. Het is een zeer nuttige synchronisatietool om de bestanden en mappen lokaal of op afstand van het ene systeem naar het andere systeem te kopiëren. Het heeft veel meer voordelen dan de andere synchronisatietools. Deze tool is standaard in Linux geïnstalleerd. De gebruiker hoeft het dus niet te installeren. De voordelen en het gebruik van het “rsync”-commando worden in deze tutorial getoond aan de hand van 15 eenvoudige voorbeelden.

Voordelen van het 'Rsync'-commando

  1. Het is sneller dan de andere tools omdat het alleen die bestanden kopieert van de bronlocatie naar de doellocatie die zijn gewijzigd of niet bestaan ​​op de doellocatie.
  2. Het ondersteunt de onvolledige overdracht.
  3. Het vereist minder bandbreedte omdat het de gegevens tijdens de verzending comprimeert.
  4. Het vermindert de overhead van de verzending omdat de minder belangrijke gegevens zonder codering kunnen worden verzonden.

Syntaxis

De syntaxis van de opdracht 'rsync' wordt als volgt weergegeven:

rsync [Optie] Bronbestemming

Hier kunnen de bron- en bestemmingspaden lokaal of op afstand zijn. Verschillende soorten opties kunnen met deze opdracht voor verschillende doeleinden worden gebruikt.







Handige opties van het 'Rsync' -commando

Enkele veelgebruikte opties van het “rsync”-commando worden hieronder uitgelegd:



Keuze Doel
-Met Het wordt gebruikt om de gegevens tijdens de verzending te comprimeren.
-R Het wordt gebruikt om de gegevens recursief te synchroniseren zonder enige bestandstoestemming te behouden.
-A Het wordt gebruikt om de gegevens recursief te synchroniseren door alle bestandsrechten te behouden.
-B Het wordt gebruikt om een ​​back-up van de gegevens tijdens de verzending te bewaren.
-in Het wordt gebruikt om de uitvoer in verbose formaat weer te geven.
-P Het wordt gebruikt om de voortgang van de overdracht weer te geven.
-N Het wordt gebruikt om te controleren of de synchronisatie werkt of niet voordat de bestanden of mappen worden overgedragen.

Lijst met 15 'Rsync'-voorbeelden

  1. Draag een enkel bestand en een enkele map lokaal over
  2. Breng lokaal meerdere bestanden en mappen over
  3. Breng een enkel bestand en een enkele map op afstand over
  4. Breng meerdere bestanden en mappen op afstand over
  5. Geef de voortgang van de overdracht weer
  6. Comprimeer de gegevens tijdens de overdracht
  7. Overdracht met de bandbreedtelimiet
  8. Breng de bestanden en mappen recursief over
  9. Overdracht met de minimale groottelimiet
  10. Overdracht met de maximale groottelimiet
  11. Breng de bestanden van het specifieke type over
  12. Geef de verschillen weer tussen de bron- en doelbestanden
  13. Voeg de bestanden toe of sluit ze uit tijdens de overdracht
  14. Synchroniseer de gegevens in de droge modus
  15. Verwijder de bronbestanden en -mappen na de overdracht

Draag een enkel bestand en een enkele map lokaal over

Voer de opdracht 'ls' uit om de lijst met bestanden en mappen van de huidige locatie weer te geven. Voer vervolgens de opdracht 'rsync' uit om het bestand 'employees.txt' lokaal over te zetten naar het bestand 'employees_copy.txt'. Voer de opdracht 'ls' opnieuw uit om te controleren of het bestand correct is overgedragen of niet.



$ ls
$ rsync medewerkers.txt medewerkers_kopie.txt
$ ls

De volgende uitvoer laat zien dat het bestand 'employee.txt' met succes is overgedragen:





Stel dat de inhoud van de map temp moet worden overgebracht naar de map tempdir waar het bestand 'courses.txt' in beide mappen staat. Voer de opdracht 'ls temp' uit om de inhoud van de tijdelijke map te controleren. Voer vervolgens de opdracht 'cat temp/courses.txt' uit om de inhoud van dit bestand te controleren. Voer vervolgens de opdracht 'ls tempdir' uit om de inhoud van de map tempdir te controleren. Voer vervolgens de opdracht 'cat tempdir/courses.txt' uit om de inhoud van dit bestand te controleren.



$ ls temp
$ cat temp/cursussen.txt
$ lstempdir
$ cat tempdir/cursussen.txt

De uitvoer laat zien dat de inhoud van het bestand 'courses.txt' van de mappen temp en tempdir enigszins verschilt en dat het bestand 'courses.txt' van de map temp meer gegevens bevat dan het bestand 'courses.txt' van de map tempdir .

Voer de volgende opdracht uit om de inhoud van de map temp over te brengen naar de map tempdir en controleer de inhoud van het bestand 'courses.txt' van de map tempdir om te bevestigen dat het bestand correct is bijgewerkt of niet:

$ rsync -a temp/tempdir/
$ lstempdir
$ cat tempdir/cursussen.txt

De volgende uitvoer laat zien dat de inhoud van de map temp correct is overgebracht naar de map tempdir en dat de inhoud van het bestand 'courses.txt' van de map tempdir correct is bijgewerkt:

Breng lokaal meerdere bestanden en mappen over

De opdracht 'rsync' kan worden gebruikt om meerdere bestanden en mappen lokaal over te dragen. Voer de volgende opdracht uit om de bestanden 'ping1.bash' en 'ping2.bash' over te zetten naar de map tempdir en controleer de inhoud van de map tempdir na de overdracht. De optie -v wordt gebruikt met de opdracht 'rsync' om de uitvoer in uitgebreide indeling weer te geven:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

De volgende uitvoer laat zien dat meerdere bestanden correct worden overgebracht naar de map tempdir:

Voer de volgende opdrachten uit om de inhoud van de mappen temp, tempdir en test te controleren en breng de inhoud van de map test en tempdir over naar de map temp:

$ ls temp
$ lstempdir
$ ls-test
$ rsync -av test/ tempdir/ temp/
$ ls temp

De uitvoer laat zien dat de inhoud van de test- en tempdir-mappen met succes zijn overgebracht naar de temp-map. De bestanden 'customers.csv', 'ping1.bash' en 'ping2.bash' worden als nieuwe bestanden toegevoegd aan de tijdelijke map:

Breng een enkel bestand en een enkele map op afstand over

U moet de SSH-server op de externe locatie installeren en configureren om de bestanden en mappen op afstand over te dragen. U kunt dit controleren zelfstudie om de SSH-server te configureren.

Voer de volgende opdracht uit om de grootte van het bestand 'courses.txt' van de huidige locatie te controleren:

ls -la cursussen.txt

De uitvoer laat zien dat de grootte van het bestand 'courses.txt' 65 bytes is:

Voer de volgende opdracht uit om de 'courses.txt' over te brengen naar het /home/ubuntu/cursussen/ map van de externe locatie, ubuntu@192.168.0.101. U moet het root-wachtwoord van de externe computer opgeven voordat u het bestand overdraagt:

rsync -v cursussen.txt ubuntu@192.168.0.101:/home/ubuntu/courses/

De volgende uitvoer laat zien dat het bestand 'courses.txt' correct is overgebracht naar de externe computer en dat de bestandsgrootte 65 bytes is:

Voer de volgende opdracht uit om de tijdelijke map over te brengen naar het /home/ubuntu/cursussen/ map van de externe locatie, ubuntu@192.168.0.101. U moet het root-wachtwoord van de externe machine opgeven voordat u het bestand zoals de vorige opdracht overdraagt.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

De volgende uitvoer laat zien dat de inhoud van de tijdelijke map correct wordt overgedragen naar de externe computer:

Breng meerdere bestanden en mappen op afstand over

De volgende opdracht 'rsync' brengt de bestanden 'customers.csv' en 'department.json' over naar de /home/Ubuntu/bestanden/ map van de externe locatie, ubuntu@192.168.0.101.

rsync -av klanten.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/

De volgende uitvoer laat zien dat meerdere bestanden met succes zijn overgebracht naar de externe locatie:

De volgende 'rsync'-opdracht brengt de inhoud van de tijdelijke en testmappen en het 'department.json'-bestand over naar de /home/Ubuntu/bestanden/ map van de externe locatie, ubuntu@192.168.0.101.

rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/

De volgende uitvoer laat zien dat de inhoud van de meerdere mappen met succes naar de externe locatie is overgebracht:

Geef de voortgang van de overdracht weer

Voer de opdracht 'rsync' uit met de optie -progress om de inhoud van de map tempdir over te zetten naar de map temp_copy met de voortgangsinformatie.

rsync -a tempdir/temp_copy --progress

De volgende uitvoer laat zien dat de map temp_copy lokaal is gemaakt en dat de inhoud van de map tempdir met succes is overgebracht naar de map temp_copy:

Comprimeer de gegevens tijdens de overdracht

Voer de volgende opdracht 'rsync' uit met de optie –z om de tempdir-directory lokaal te comprimeren en naar de testdirectory over te brengen:

rsync -za tempdir/test/

De volgende uitvoer laat zien dat de gecomprimeerde map lokaal met succes is overgedragen:

Overdracht met de bandbreedtelimiet

Voer de volgende opdracht 'rsync' uit met de optie –bwlimit met een waarde van 100 om het bestand /etc/passwd lokaal naar de map temp over te brengen:

rsync -v --bwlimit=100 etc/passwd temp/

De volgende uitvoer laat zien dat het passwd-bestand met succes is overgedragen:

Breng het bestand en de map recursief over

Voer de volgende opdracht 'rsync' uit met de optie –rv om de testmap lokaal naar de map test_bak te verplaatsen:

rsync -rv test/ test_bak/

De volgende uitvoer laat zien dat de testmap met succes is overgebracht naar de test_bak-map:

Overdracht met de minimale groottelimiet

Het overzetten van de bestanden en mappen met de opdracht 'rsync' kan worden beperkt met de optie –min-size om de minimumgrootte in te stellen voor het overzetten van de bestanden en mappen. Voer de volgende opdracht 'ls -la tempdir' uit om de grootte van elk bestand en elke map in deze map te controleren. Voer vervolgens de opdracht 'rsync' uit om de inhoud van de map tempdir over te zetten naar de map tempdir_bak met de minimale maximale grootte.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

De volgende uitvoer laat zien dat er twee bestanden bestaan ​​in de map tempdir die overeenkomen met de minimale grootte. Dit zijn “ping1.bash” (248 bytes) en “test.txt” (34504 bytes). Deze bestanden worden overgebracht naar de map tempdir_bak en de andere bestanden van de map tempdir worden weggelaten:

Overdracht met de maximale groottelimiet

Het overzetten van de bestanden en mappen met de opdracht 'rsync' kan worden beperkt met de optie –max-size om de maximale grootte van de overzettende bestanden en mappen in te stellen. Voer de volgende opdracht 'ls -la temp' uit om de grootte van elk bestand en elke map van deze map te controleren. Voer vervolgens de opdracht 'rsync' uit om de inhoud van de map temp over te brengen naar de map temp_bak met de maximale grootte.

ls-la temp
rsync --max-size='250B' temp/ temp_bak/

De volgende uitvoer laat zien dat er vier bestanden in de tijdelijke map staan ​​die overeenkomen met de maximale groottelimiet. Dit zijn “courses.txt” (65 bytes), “employees.csv” (361 bytes), “ping1.bash” (248 bytes) en “ping2.bash” (244 bytes). Deze bestanden worden overgebracht naar de map temp_bak en de andere bestanden in de map temp worden weggelaten:

Breng de bestanden van het specifieke type over

Het type bestand dat wordt overgedragen, kan worden ingesteld door de extensie van het bestand te vermelden in de opdracht 'rsync'. Voer de volgende opdracht 'rsync' uit om alle tekstbestanden van de tijdelijke map over te zetten naar de map mydir. Hier wordt de extensie van het tekstbestand aangegeven met '*.txt':

rsync -v temp/*.txt mydir/

De volgende uitvoer laat zien dat twee tekstbestanden, 'courses.txt' en 'test.txt', worden overgebracht naar de mydir-map en dat de andere bestanden van de tijdelijke map worden weggelaten:

Geef de verschillen weer tussen de bron- en doelbestanden

Wanneer de bestanden of mappen lokaal of op afstand van de ene locatie naar een andere locatie worden overgebracht, kunnen beide locaties dezelfde bestanden of mappen bevatten. De verschillen tussen de bron en de bestemming tijdens de verzending kunnen worden onderzocht met behulp van de optie -i met het commando 'rsync'. Voer de volgende 'cat' -opdrachten uit om de inhoud van het bron- en doelbestand te controleren voordat u het overzet. Hier wordt het bestand 'courses.txt' overgebracht naar de tijdelijke map.

kattencursussen.txt
cat temp/cursussen.txt
rsync -avi cursussen.txt temp/

De volgende uitvoer laat zien dat het bestand 'courses.txt' van de bron en de bestemming enigszins verschillen. De uitvoer van de opdracht 'rsync' toont het verschil tussen de bestanden:

Synchroniseer de gegevens in de droge modus

Als u wilt weten welke bestanden en mappen zijn overgedragen door het “rsync”-commando voordat de daadwerkelijke overdracht plaatsvindt, is het beter om het “rsync”-commando uit te voeren met de –dry-run-optie of de –n-optie. Wanneer de opdracht 'rsync' met deze optie wordt uitgevoerd, wordt gecontroleerd welke bestanden of mappen van de bronmap naar de bestemmingsmap worden gekopieerd, maar blijft de bestemmingsmap ongewijzigd. Voer het bestand 'ls –la department.json' uit om de grootte van het bestand te controleren. Voer vervolgens de opdracht 'rsync' uit met de -dry-run-modus om de overdracht van de 'department.json' naar de tijdelijke map te controleren.

ls -la afdeling.json
rsync -v --dry-run department.json temp/

De volgende uitvoer laat zien dat de grootte van het bestand 'department.json' 1172 bytes is. De bestandsgrootte toont 1172 bytes na het uitvoeren van de opdracht 'rsync' met de optie –dry-run:

Voeg de bestanden toe of sluit ze uit tijdens de overdracht

U kunt het type bestand filteren op het moment van overdracht van de bronlocatie naar de bestemmingslocatie met behulp van de opties –include en –exclude. De optie 'optionsinclude' wordt gebruikt om de extensie te definiëren van die bestanden die van de bron naar de bestemming worden overgebracht. De optie –exclude wordt gebruikt om de extensie te definiëren van die bestanden die niet van de bron naar de bestemming worden overgedragen.

Voer de volgende map 'ls temp' uit om de inhoud van de map temp te controleren. Voer vervolgens de opdracht 'rsync' uit met de opties -include en -exclude. Volgens de opdracht worden alle CSV-bestanden van de tijdelijke map overgebracht naar de bestandenmap en worden alle tekstbestanden van de tijdelijke map weggelaten op het moment van overdracht. Voer vervolgens de opdracht 'ls files' uit om te controleren welke bestanden zijn overgebracht van de map temp naar de map files.

ls temp
rsync -a tijdelijke/bestanden/ --include=*.csv --exclude=*.txt
ls-bestanden

De volgende uitvoer laat zien dat de tijdelijke map twee CSV-bestanden, twee tekstbestanden en twee BASH-bestanden bevat. De bestandenmap is leeg voor de overdracht en twee CSV-bestanden en twee BASH-bestanden worden overgedragen:

Verwijder de bronbestanden en -mappen na de overdracht

In de vorige alle 'rsync' -opdrachten blijven de bronbestanden en -mappen op de bronlocatie na overdracht naar de doellocatie. Maar soms moeten de bestanden en mappen permanent naar de bestemmingslocatie worden overgebracht. Deze taak kan worden uitgevoerd met behulp van de optie –remove-source-files met de opdracht 'rsync'. Voer de opdracht 'ls' uit om alle bestanden en mappen van de huidige locatie te controleren. Voer de opdracht 'ls temp' uit om de bestanden en mappen van de tijdelijke map te controleren. Voer vervolgens de opdracht 'rsync' uit met de optie –remove-source-files om de bestanden en mappen van de bronlocatie te verwijderen nadat de overdracht is voltooid. Voer de opdracht 'ls' opnieuw uit om te controleren of het bronbestand is verwijderd van de bronlocatie of niet.

ls
ls temp
rsync medewerkers.csv temp/ --remove-source-files
ls

De volgende uitvoer laat zien dat het bestand 'employees.csv' van de huidige locatie wordt overgebracht naar de tijdelijke map en dat het bestand 'employees.csv' wordt verwijderd van de bronlocatie na de overdracht:

Conclusie

De 'rsync' is een erg handig hulpmiddel van Linux dat de overdrachtstaak van de bestanden en mappen van de ene locatie naar een andere locatie gemakkelijker maakt met behulp van verschillende opties. De methoden voor het gebruik van de opdracht 'rsync' om de bestanden en mappen van de ene locatie naar een andere locatie over te brengen door middel van compressie, het instellen van de grootte van bestanden en mappen, het instellen van het bestandstype, het instellen van de bandbreedtelimiet, enz. worden getoond in 15 eenvoudige voorbeelden van deze zelfstudie. Deze tutorial helpt de Linux-gebruikers om het basisgebruik van de opdracht 'rsync' in Linux goed te leren kennen.