15 Rsync-eksempler

15 Rsync Eksempler



Å overføre filer fra ett sted til et annet sted er en veldig vanlig oppgave for Linux-brukere. Mange alternativer er tilgjengelige i Linux for å utføre denne oppgaven; 'rsync' er en av dem. Den fullstendige formen for 'rsync' er 'Remote Sync'. Det er et veldig nyttig synkroniseringsverktøy for å kopiere filene og mappene fra ett system til et annet system lokalt eller eksternt. Det har mange flere fordeler enn de andre synkroniseringsverktøyene. Dette verktøyet er installert i Linux som standard. Så brukeren trenger ikke å installere den. Fordelene og bruken av 'rsync'-kommandoen vises i denne opplæringen ved hjelp av 15 enkle eksempler.

Fordeler med 'Rsync'-kommandoen

  1. Det er raskere enn de andre verktøyene fordi det kopierer bare de filene fra kildestedet til destinasjonsstedet som er endret eller ikke eksisterer på destinasjonsstedet.
  2. Den støtter den ufullstendige overføringen.
  3. Det krever mindre båndbredde fordi det komprimerer dataene under overføringen.
  4. Det reduserer overføringskostnadene fordi mindre viktige data kan overføres uten kryptering.

Syntaks

Syntaksen til 'rsync'-kommandoen er gitt i følgende:

rsync [Alternativ] Kildemål

Her kan kilde- og destinasjonsbanene være lokale eller eksterne. Ulike typer alternativer kan brukes med denne kommandoen til forskjellige formål.







Nyttige alternativer for 'Rsync'-kommandoen

Noen ofte brukte alternativer for 'rsync'-kommandoen er forklart i følgende:



Alternativ Hensikt
-Med Den brukes til å komprimere dataene under overføringen.
-r Den brukes til å synkronisere dataene rekursivt uten å beholde noen filtillatelse.
-en Den brukes til å synkronisere dataene rekursivt ved å beholde alle filtillatelser.
-b Den brukes til å ta sikkerhetskopi av dataene under overføring.
-i Den brukes til å vise utdataene i detaljert format.
-s Den brukes til å vise fremdriften av overføringen.
-n Den brukes til å sjekke om synkroniseringen fungerer eller ikke før filene eller mappene 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 fremdriften for overføringen
  6. Komprimer dataene under overføringen
  7. Overfør med båndbreddegrensen
  8. Overfør filene og mappene rekursivt
  9. Overfør med minimumsstørrelsesgrensen
  10. Overfør med maksimal størrelsesgrense
  11. Overfør filene av den spesielle typen
  12. Vis forskjellene mellom kilde- og destinasjonsfilene
  13. Inkluder eller ekskluder filene under overføringen
  14. Synkroniser dataene i tørrmodus
  15. Slett kildefilene og mappene etter overføringen

Overfør en enkelt fil og mappe lokalt

Kjør 'ls'-kommandoen for å vise listen over filer og mapper for gjeldende plassering. Deretter kjører du 'rsync'-kommandoen for å overføre filen 'employees.txt' til filen 'employees_copy.txt' lokalt. Kjør 'ls'-kommandoen igjen for å sjekke om filen er overført på riktig måte eller ikke.



$ ls
$ rsync ansatte.txt ansatte_kopi.txt
$ ls

Følgende utdata viser at 'employee.txt'-filen er vellykket overført:





Anta at innholdet i temp-mappen må overføres til tempdir-mappen der 'courses.txt'-filen finnes i begge mappene. Kjør kommandoen 'ls temp' for å sjekke innholdet i temp-mappen. Deretter kjører du kommandoen 'cat temp/courses.txt' for å sjekke innholdet i denne filen. Deretter kjører du kommandoen 'ls tempdir' for å sjekke innholdet i tempdir-mappen. Deretter kjører du kommandoen 'cat tempdir/courses.txt' for å sjekke innholdet i denne filen.



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

Utdataene viser at innholdet i 'courses.txt'-filen til temp- og tempdir-mappene er litt annerledes, og 'courses.txt'-filen i temp-mappen inneholder mer data enn 'courses.txt'-filen til tempdir-mappen .

Kjør følgende kommando for å overføre innholdet i tempdir-mappen til tempdir-mappen og sjekk innholdet i 'courses.txt'-filen i tempdir-mappen for å bekrefte at filen er riktig oppdatert eller ikke:

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

Følgende utdata viser at innholdet i tempdir-mappen er overført på riktig måte til tempdir-mappen, og innholdet i 'courses.txt'-filen til tempdir-mappen er riktig oppdatert:

Overfør flere filer og mapper lokalt

Kommandoen 'rsync' kan brukes til å overføre flere filer og mapper lokalt. Kjør følgende kommando for å overføre filene 'ping1.bash' og 'ping2.bash' til tempdir-mappen og sjekk innholdet i tempdir-mappen etter overføringen. Alternativet -v brukes med 'rsync'-kommandoen for å vise utdataene i detaljert format:

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

Følgende utdata viser at flere filer er overført riktig til tempdir-mappen:

Kjør følgende kommandoer for å sjekke innholdet i temp-, tempdir- og testmappene og overføre innholdet i test- og tempdir-mappen til temp-mappen:

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

Utdataene viser at innholdet i test- og tempdir-mappene er overført til temp-mappen. «customers.csv», «ping1.bash» og «ping2.bash»-filene legges til som nye filer i temp-mappen:

Overfør en enkelt fil og mappe eksternt

Du må installere og konfigurere SSH-serveren på den eksterne plasseringen for å overføre filene og mappene eksternt. Du kan sjekke dette opplæringen for å konfigurere SSH-serveren.

Kjør følgende kommando for å sjekke størrelsen på 'courses.txt'-filen for gjeldende plassering:

ls -la kurs.txt

Utdataene viser at størrelsen på 'courses.txt'-filen er 65 byte:

Kjør følgende kommando for å overføre 'courses.txt' til /home/ubuntu/kurs/ mappe for den eksterne plasseringen, ubuntu@192.168.0.101. Du må oppgi root-passordet til den eksterne maskinen før du overfører filen:

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

Følgende utdata viser at 'courses.txt'-filen er overført til den eksterne maskinen riktig og filstørrelsen er 65 byte:

Kjør følgende kommando for å overføre temp-mappen til /home/ubuntu/kurs/ mappe for den eksterne plasseringen, ubuntu@192.168.0.101. Du må oppgi root-passordet til den eksterne maskinen før du overfører filen som forrige kommando.

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

Følgende utdata viser at innholdet i temp-mappen er overført til den eksterne maskinen på riktig måte:

Overfør flere filer og mapper eksternt

Følgende 'rsync'-kommando overfører filene 'customers.csv' og 'department.json' til /home/Ubuntu/filer/ mappe for den eksterne plasseringen, ubuntu@192.168.0.101.

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

Følgende utdata viser at flere filer er overført til den eksterne plasseringen:

Følgende 'rsync'-kommando overfører innholdet i temp- og testmappene og 'department.json'-filen til /home/Ubuntu/filer/ mappe for den eksterne plasseringen, ubuntu@192.168.0.101.

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

Følgende utdata viser at innholdet i de flere mappene er overført til den eksterne plasseringen:

Vis fremdriften for overføringen

Kjør 'rsync'-kommandoen med -progress-alternativet for å overføre innholdet i tempdir-mappen til temp_copy-mappen med fremdriftsinformasjonen.

rsync -a tempdir/ temp_copy --progress

Følgende utdata viser at temp_copy-katalogen er opprettet lokalt og innholdet i tempdir-mappen er overført til temp_copy-mappen:

Komprimer dataene under overføringen

Kjør følgende 'rsync'-kommando med -z-alternativet for å komprimere og overføre tempdir-katalogen til testkatalogen lokalt:

rsync -za tempdir/test/

Følgende utdata viser at den komprimerte katalogen er vellykket overført lokalt:

Overfør med båndbreddegrensen

Kjør følgende 'rsync'-kommando med -bwlimit-alternativet med 100 verdi for å overføre /etc/passwd-filen til temp-mappen lokalt:

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

Følgende utdata viser at passwd-filen er vellykket overført:

Overfør filen og mappen rekursivt

Kjør følgende 'rsync'-kommando med -rv-alternativet for å overføre testmappen til test_bak-mappen lokalt:

rsync -rv test/ test_bak/

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

Overfør med minimumsstørrelsesgrensen

Overføring av filer og mapper ved hjelp av 'rsync'-kommandoen kan begrenses ved å bruke -min-size-alternativet for å angi minimumsstørrelsesgrensen for overføring av filer og mapper. Kjør følgende 'ls -la tempdir'-kommando for å sjekke størrelsen på hver fil og mappe i denne mappen. Deretter kjører du 'rsync'-kommandoen for å overføre innholdet i tempdir-mappen til tempdir_bak-mappen med minimumsstørrelsesgrensen.

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

Følgende utdata viser at det finnes to filer i tempdir-mappen som samsvarer med minimumsstørrelsen. Disse er 'ping1.bash' (248 byte) og 'test.txt' (34504 byte). Disse filene overføres til tempdir_bak-mappen og de andre filene i tempdir-mappen er utelatt:

Overfør med maksimal størrelsesgrense

Overføring av filer og mapper ved hjelp av 'rsync'-kommandoen kan begrenses ved å bruke -max-size-alternativet for å angi maksimal størrelsesgrense for overføring av filer og mapper. Kjør følgende 'ls -la temp'-kommando for å sjekke størrelsen på hver fil og mappe i denne mappen. Deretter kjører du 'rsync'-kommandoen for å overføre innholdet i temp-mappen til temp_bak-mappen med maksimal størrelsesgrense.

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

Følgende utdata viser at det finnes fire filer i temp-mappen som samsvarer med maksimal størrelsesgrense. Disse er 'courses.txt' (65 byte), 'employees.csv' (361 byte), 'ping1.bash' (248 byte) og 'ping2.bash' (244 byte). Disse filene overføres til temp_bak-mappen og de andre filene i temp-mappen er utelatt:

Overfør filene av den spesielle typen

Filtypen som skal overføres, kan angis ved å nevne filtypen i 'rsync'-kommandoen. Kjør følgende 'rsync'-kommando for å overføre alle tekstfiler i temp-mappen til mydir-mappen. Her er forlengelsen av tekstfilen angitt med '*.txt':

rsync -v temp/*.txt mydir/

Følgende utdata viser at to tekstfiler, 'courses.txt' og 'test.txt', overføres til mydir-mappen, og de andre filene i temp-mappen er utelatt:

Vis forskjellene mellom kilde- og destinasjonsfilene

Når filene eller mappene overføres fra ett sted til et annet sted lokalt eller eksternt, kan begge plasseringene inneholde de samme filene eller mappene. Forskjellene mellom kilden og destinasjonen under overføringen kan undersøkes ved å bruke -i-alternativet med 'rsync'-kommandoen. Kjør følgende 'cat'-kommandoer for å sjekke innholdet i kilden og målfilen før overføring. Her overføres 'courses.txt'-filen til temp-mappen.

cat courses.txt
cat temp/courses.txt
rsync -avi kurs.txt temp/

Følgende utdata viser at 'courses.txt'-filen til kilden og destinasjonen er litt annerledes. Utdataene til 'rsync'-kommandoen viser forskjellen mellom filene:

Synkroniser dataene i tørrmodus

Hvis du vil vite hvilke filer og mapper som overføres av 'rsync'-kommandoen før selve overføringen, er det bedre å kjøre 'rsync'-kommandoen med alternativet –dry-run eller –n-alternativet. Når 'rsync'-kommandoen utføres med dette alternativet, sjekker den hvilke filer eller mapper som kopieres fra kildemappen til målmappen, men holder målmappen uendret. Kjør filen 'ls –la department.json' for å sjekke størrelsen på filen. Deretter kjører du 'rsync'-kommandoen med -dry-run-modus for å sjekke overføringen av 'department.json' til temp-mappen.

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

Følgende utdata viser at størrelsen på filen 'department.json' er 1172 byte. Filstørrelsen viser 1172 byte etter å ha utført kommandoen 'rsync' med -dry-run-alternativet:

Inkluder eller ekskluder filene under overføringen

Du kan filtrere filtypen på tidspunktet for overføring fra kildestedet til destinasjonsstedet ved å bruke alternativene –inkluder og –ekskluder. Alternativet 'optionsinclude' brukes til å definere utvidelsen av filene som skal overføres fra kilden til destinasjonen. Alternativet –ekskluder brukes til å definere utvidelsen av de filene som ikke skal overføres fra kilden til destinasjonen.

Kjør følgende 'ls temp'-mappe for å sjekke innholdet i temp-mappen. Deretter kjører du 'rsync'-kommandoen med alternativene –include og –exclude. I henhold til kommandoen blir alle CSV-filer i temp-mappen overført til filer-mappen, og alle tekstfiler i temp-mappen blir utelatt på overføringstidspunktet. Deretter kjører du 'ls files'-kommandoen for å sjekke hvilke filer som overføres fra den midlertidige mappen til filer-mappen.

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

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

Slett kildefilene og mappene etter overføringen

I de forrige alle 'rsync'-kommandoene forblir kildefilene og mappene på kildeplasseringen etter overføring til destinasjonsstedet. Men noen ganger krever det permanent overføring av filene og mappene til destinasjonsstedet. Denne oppgaven kan gjøres ved å bruke alternativet –remove-source-files med kommandoen “rsync”. Kjør 'ls'-kommandoen for å sjekke alle filene og mappene på gjeldende plassering. Kjør kommandoen 'ls temp' for å sjekke filene og mappene i temp-mappen. Deretter kjører du 'rsync'-kommandoen med alternativet –remove-source-files for å slette filene og mappene til kildeplasseringen etter at overføringen er fullført. Kjør 'ls'-kommandoen igjen for å sjekke om kildefilen er fjernet fra kildeplasseringen eller ikke.

ls
er temp
rsync medarbeidere.csv temp/ --remove-source-files
ls

Følgende utdata viser at 'employees.csv'-filen for gjeldende plassering blir overført til temp-mappen og 'employees.csv'-filen fjernes fra kildeplasseringen etter overføringen:

Konklusjon

'rsync' er et veldig nyttig verktøy for Linux som gjør overføringsoppgaven til filene og mappene fra ett sted til et annet sted enklere ved å bruke forskjellige alternativer. Metodene for å bruke 'rsync'-kommandoen for å overføre filene og mappene fra ett sted til et annet sted ved å komprimere, angi størrelsen på filene og mappene, angi filtypen, angi båndbreddegrensen osv. er vist i 15 enkle eksempler på denne opplæringen. Denne opplæringen hjelper Linux-brukere til å kjenne den grunnleggende bruken av 'rsync'-kommandoen i Linux riktig.