15 Rsync-eksempler

15 Rsync Eksempler



Overførsel af filer fra en placering til en anden placering er en meget almindelig opgave for Linux-brugeren. Mange muligheder er tilgængelige i Linux for at udføre denne opgave; 'rsync' er en af ​​dem. Den fulde form for 'rsync' er 'Remote Sync'. Det er et meget nyttigt synkroniseringsværktøj til at kopiere filer og mapper fra et system til et andet system lokalt eller eksternt. Det har mange flere fordele end de andre synkroniseringsværktøjer. Dette værktøj er installeret i Linux som standard. Så brugeren behøver ikke at installere det. Fordelene og anvendelserne af kommandoen 'rsync' er vist i denne tutorial ved hjælp af 15 enkle eksempler.

Fordele ved 'Rsync'-kommandoen

  1. Det er hurtigere end de andre værktøjer, fordi det kun kopierer de filer fra kildeplaceringen til destinationsplaceringen, som er ændret eller ikke findes på destinationsplaceringen.
  2. Det understøtter den ufuldstændige overførsel.
  3. Det kræver mindre båndbredde, fordi det komprimerer dataene under transmissionen.
  4. Det mindsker overhead af transmissionen, fordi de mindre vigtige data kan transmitteres uden kryptering.

Syntaks

Syntaksen for kommandoen 'rsync' er givet i følgende:

rsync [Option] Kildedestination

Her kan kilde- og destinationsstierne være lokale eller fjerntliggende. Forskellige typer muligheder kan bruges med denne kommando til forskellige formål.







Nyttige muligheder for 'Rsync'-kommandoen

Nogle almindeligt anvendte muligheder for kommandoen 'rsync' er forklaret i det følgende:



Mulighed Formål
-Med Det bruges til at komprimere dataene under transmissionen.
-r Det bruges til at synkronisere dataene rekursivt uden at beholde nogen filtilladelse.
-en Det bruges til at synkronisere dataene rekursivt ved at beholde alle filtilladelser.
-b Det bruges til at holde en sikkerhedskopi af dataene under transmissionen.
-i Det bruges til at vise output i verbose format.
-s Den bruges til at vise overførslens fremskridt.
-n Det bruges til at kontrollere, om synkroniseringen fungerer eller ej, før filerne eller mapperne overføres.

Liste over 15 'Rsync'-eksempler

  1. Overfør en enkelt fil og mappe lokalt
  2. Overfør flere filer og mapper lokalt
  3. Overfør en enkelt fil og mappe eksternt
  4. Overfør flere filer og mapper eksternt
  5. Vis overførslens fremskridt
  6. Komprimer dataene under overførslen
  7. Overfør med båndbreddegrænsen
  8. Overfør filerne og mapperne rekursivt
  9. Overfør med minimumsstørrelsesgrænsen
  10. Overfør med den maksimale størrelsesgrænse
  11. Overfør filerne af den særlige type
  12. Vis forskellene mellem kilde- og destinationsfilerne
  13. Inkluder eller ekskluder filerne under overførslen
  14. Synkroniser dataene i tør tilstand
  15. Slet kildefilerne og mapperne efter overførslen

Overfør en enkelt fil og mappe lokalt

Kør kommandoen 'ls' for at vise listen over filer og mapper på den aktuelle placering. Kør derefter kommandoen 'rsync' for at overføre filen 'employees.txt' til filen 'employees_copy.txt' lokalt. Kør kommandoen 'ls' igen for at kontrollere, om filen er overført korrekt eller ej.



$ ls
$ rsync medarbejdere.txt ansatte_kopi.txt
$ ls

Følgende output viser, at filen 'employee.txt' er overført med succes:





Antag, at indholdet af temp-mappen skal overføres til tempdir-mappen, hvor filen 'courses.txt' findes i begge mapper. Kør kommandoen 'ls temp' for at kontrollere indholdet af temp-mappen. Kør derefter kommandoen 'cat temp/courses.txt' for at kontrollere indholdet af denne fil. Kør derefter kommandoen 'ls tempdir' for at kontrollere indholdet af tempdir-mappen. Kør derefter kommandoen 'cat tempdir/courses.txt' for at kontrollere indholdet af denne fil.



$ ls temp
$ kat temp/kurser.txt
$ lstempdir
$ kat tempdir/courses.txt

Outputtet viser, at indholdet af 'courses.txt'-filen i temp- og tempdir-mapperne er lidt anderledes, og 'courses.txt'-filen i temp-mappen indeholder flere data end 'courses.txt'-filen i tempdir-mappen .

Kør følgende kommando for at overføre indholdet af tempdir-mappen til tempdir-mappen, og kontroller indholdet af 'courses.txt'-filen i tempdir-mappen for at bekræfte, at filen er opdateret korrekt eller ej:

$ rsync -a temp/ tempdir/
$ lstempdir
$ kat tempdir/courses.txt

Følgende output viser, at indholdet af tempdir-mappen er overført korrekt til tempdir-mappen, og indholdet af 'courses.txt'-filen i tempdir-mappen er opdateret korrekt:

Overfør flere filer og mapper lokalt

Kommandoen 'rsync' kan bruges til at overføre flere filer og mapper lokalt. Kør følgende kommando for at overføre filerne 'ping1.bash' og 'ping2.bash' til tempdir-mappen og kontroller indholdet af tempdir-mappen efter overførslen. Indstillingen -v bruges sammen med kommandoen 'rsync' til at vise outputtet i verbose format:

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

Følgende output viser, at flere filer er overført korrekt til tempdir-mappen:

Kør følgende kommandoer for at kontrollere indholdet af temp-, tempdir- og testmapperne og overfør indholdet af test- og tempdir-mappen til temp-mappen:

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

Outputtet viser, at indholdet af test- og tempdir-mapperne er overført til temp-mappen. Filerne 'customers.csv', 'ping1.bash' og 'ping2.bash' tilføjes som nye filer til den midlertidige mappe:

Overfør en enkelt fil og mappe eksternt

Du skal installere og konfigurere SSH-serveren på den eksterne placering for at overføre filerne og mapperne eksternt. Du kan tjekke dette tutorial for at konfigurere SSH-serveren.

Kør følgende kommando for at kontrollere størrelsen på filen 'courses.txt' på den aktuelle placering:

ls -la kurser.txt

Outputtet viser, at størrelsen på filen 'courses.txt' er 65 bytes:

Kør følgende kommando for at overføre 'courses.txt' til /home/ubuntu/kurser/ mappe for den eksterne placering, ubuntu@192.168.0.101. Du skal angive root-adgangskoden til fjernmaskinen, før du overfører filen:

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

Følgende output viser, at filen 'courses.txt' er overført til den eksterne maskine korrekt, og filstørrelsen er 65 bytes:

Kør følgende kommando for at overføre den midlertidige mappe til /home/ubuntu/kurser/ mappe for den eksterne placering, ubuntu@192.168.0.101. Du skal angive root-adgangskoden til fjernmaskinen, før du overfører filen som den forrige kommando.

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

Følgende output viser, at indholdet af den midlertidige mappe er overført til den eksterne maskine korrekt:

Overfør flere filer og mapper eksternt

Den følgende 'rsync'-kommando overfører filerne 'customers.csv' og 'department.json' til /home/Ubuntu/filer/ mappe for den eksterne placering, ubuntu@192.168.0.101.

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

Følgende output viser, at flere filer er overført til den eksterne placering:

Den følgende 'rsync'-kommando overfører indholdet af temp- og testmappen og filen 'department.json' til /home/Ubuntu/filer/ mappe for den eksterne placering, ubuntu@192.168.0.101.

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

Følgende output viser, at indholdet af de flere mapper er overført til den eksterne placering:

Vis status for overførslen

Kør kommandoen 'rsync' med -progress-indstillingen for at overføre indholdet af tempdir-mappen til temp_copy-mappen med statusoplysningerne.

rsync -a tempdir/ temp_copy --progress

Følgende output viser, at temp_copy-mappen er oprettet lokalt, og indholdet af tempdir-mappen er overført til temp_copy-mappen:

Komprimer dataene under overførslen

Kør følgende 'rsync'-kommando med -z-indstillingen for at komprimere og overføre tempdir-mappen til testmappen lokalt:

rsync -za tempdir/test/

Følgende output viser, at den komprimerede mappe er overført med succes lokalt:

Overfør med båndbreddegrænsen

Kør følgende 'rsync'-kommando med -bwlimit-indstillingen med 100 værdi for at overføre filen /etc/passwd til temp-mappen lokalt:

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

Følgende output viser, at passwd-filen er overført med succes:

Overfør filen og mappen rekursivt

Kør følgende 'rsync'-kommando med -rv-indstillingen for at overføre testmappen til test_bak-mappen lokalt:

rsync -rv test/ test_bak/

Følgende output viser, at testmappen er overført til test_bak-mappen:

Overfør med minimumsstørrelsesgrænsen

Overførsel af filer og mapper ved hjælp af 'rsync'-kommandoen kan begrænses ved hjælp af -min-size-indstillingen for at indstille minimumsstørrelsesgrænsen for overførsel af filer og mapper. Kør følgende 'ls -la tempdir' kommando for at kontrollere størrelsen på hver fil og mappe i denne mappe. Kør derefter kommandoen 'rsync' for at overføre indholdet af tempdir-mappen til tempdir_bak-mappen med minimumsstørrelsesgrænsen.

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

Følgende output viser, at der findes to filer i tempdir-mappen, der matcher minimumsstørrelsen. Disse er 'ping1.bash' (248 bytes) og 'test.txt' (34504 bytes). Disse filer overføres til tempdir_bak-mappen, og de andre filer i tempdir-mappen udelades:

Overfør med den maksimale størrelsesgrænse

Overførsel af filer og mapper ved hjælp af 'rsync'-kommandoen kan begrænses ved at bruge -max-size-indstillingen for at indstille den maksimale størrelsesgrænse for de overførende filer og mapper. Kør følgende 'ls -la temp' kommando for at kontrollere størrelsen på hver fil og mappe i denne mappe. Kør derefter kommandoen 'rsync' for at overføre indholdet af temp-mappen til temp_bak-mappen med den maksimale størrelsesgrænse.

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

Følgende output viser, at der findes fire filer i den midlertidige mappe, der matcher den maksimale størrelsesgrænse. Disse er 'courses.txt' (65 bytes), 'employees.csv' (361 bytes), 'ping1.bash' (248 bytes) og 'ping2.bash' (244 bytes). Disse filer overføres til temp_bak-mappen, og de andre filer i temp-mappen udelades:

Overfør filerne af den særlige type

Den filtype, der overføres, kan indstilles ved at nævne filtypenavnet i kommandoen 'rsync'. Kør følgende 'rsync'-kommando for at overføre alle tekstfiler i den midlertidige mappe til mydir-mappen. Her er udvidelsen af ​​tekstfilen angivet med '*.txt':

rsync -v temp/*.txt mydir/

Følgende output viser, at to tekstfiler, 'courses.txt' og 'test.txt', overføres til mydir-mappen, og de andre filer i temp-mappen udelades:

Vis forskellene mellem kilde- og destinationsfilerne

Når filerne eller mapperne overføres fra et sted til et andet lokalt eller eksternt, kan begge placeringer indeholde de samme filer eller mapper. Forskellene mellem kilden og destinationen under transmissionen kan undersøges ved hjælp af -i-indstillingen med kommandoen 'rsync'. Kør følgende 'cat'-kommandoer for at kontrollere indholdet af kilden og destinationsfilen før overførsel. Her overføres 'courses.txt'-filen til temp-mappen.

kattekurser.txt
kat temp/kurser.txt
rsync -avi kurser.txt temp/

Følgende output viser, at 'courses.txt'-filen for kilden og destinationen er lidt anderledes. Outputtet af kommandoen 'rsync' viser forskellen mellem filerne:

Synkroniser dataene i tør tilstand

Hvis du vil vide, hvilke filer og mapper der overføres af kommandoen 'rsync' før den faktiske overførsel, er det bedre at køre kommandoen 'rsync' med -dry-run eller -n. Når kommandoen 'rsync' udføres med denne indstilling, kontrollerer den, hvilke filer eller mapper der kopieres fra kildemappen til destinationsmappen, men holder destinationsmappen uændret. Kør filen 'ls –la department.json' for at kontrollere størrelsen på filen. Kør derefter kommandoen 'rsync' med -dry-run-tilstanden for at kontrollere overførslen af ​​'department.json' til temp-mappen.

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

Følgende output viser, at størrelsen på filen 'department.json' er 1172 bytes. Filstørrelsen viser 1172 bytes efter at have udført kommandoen 'rsync' med -dry-run-indstillingen:

Inkluder eller ekskluder filerne under overførslen

Du kan filtrere filtypen på tidspunktet for overførsel fra kildeplaceringen til destinationsplaceringen ved hjælp af –inkluder og –ekskluder mulighederne. Indstillingen 'optionsinclude' bruges til at definere udvidelsen af ​​de filer, der vil blive overført fra kilden til destinationen. Indstillingen –exclude bruges til at definere udvidelsen af ​​de filer, der ikke vil blive overført fra kilden til destinationen.

Kør følgende 'ls temp'-mappe for at kontrollere indholdet af temp-mappen. Kør derefter kommandoen 'rsync' med indstillingerne -include og -exclude. Ifølge kommandoen overføres alle CSV-filer i den midlertidige mappe til mappen filer, og alle tekstfiler i den midlertidige mappe udelades på tidspunktet for overførslen. Kør derefter kommandoen 'ls files' for at kontrollere, hvilke filer der overføres fra den midlertidige mappe til mappen filer.

er temp
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls filer

Følgende output viser, at temp-mappen indeholder to CSV-filer, to tekstfiler og to BASH-filer. Filmappen er tom før overførslen, og to CSV-filer og to BASH-filer overføres:

Slet kildefilerne og mapperne efter overførslen

I de foregående alle 'rsync'-kommandoer forbliver kildefilerne og mapperne på kildeplaceringen efter overførsel til destinationsplaceringen. Men nogle gange kræver det permanent overførsel af filer og mapper til destinationsplaceringen. Denne opgave kan udføres ved hjælp af -remove-source-files-indstillingen med kommandoen 'rsync'. Kør kommandoen 'ls' for at kontrollere alle filer og mapper på den aktuelle placering. Kør kommandoen 'ls temp' for at kontrollere filerne og mapperne i den midlertidige mappe. Kør derefter kommandoen 'rsync' med -remove-source-files-indstillingen for at slette filerne og mapperne på kildeplaceringen efter at have gennemført overførslen. Kør kommandoen 'ls' igen for at kontrollere, om kildefilen er fjernet fra kildeplaceringen eller ej.

ls
er temp
rsync medarbejdere.csv temp/ --remove-source-filer
ls

Følgende output viser, at 'employees.csv'-filen for den aktuelle placering overføres til temp-mappen, og 'employees.csv'-filen fjernes fra kildeplaceringen efter overførslen:

Konklusion

'rsync' er et meget nyttigt værktøj i Linux, der gør overførselsopgaven af ​​filer og mapper fra et sted til et andet lettere ved hjælp af forskellige muligheder. Metoderne til at bruge kommandoen 'rsync' til at overføre filer og mapper fra en placering til en anden placering ved at komprimere, indstille størrelsen på filerne og mapperne, indstille filtypen, indstille båndbreddegrænsen osv. er vist i 15 enkle eksempler på denne tutorial. Denne vejledning hjælper Linux-brugere med at kende de grundlæggende anvendelser af kommandoen 'rsync' i Linux korrekt.