Fordeler med 'Rsync'-kommandoen
- 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.
- Den støtter den ufullstendige overføringen.
- Det krever mindre båndbredde fordi det komprimerer dataene under overføringen.
- 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ålHer 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
- Overfør en enkelt fil og mappe lokalt
- Overfør flere filer og mapper lokalt
- Overfør en enkelt fil og mappe eksternt
- Overfør flere filer og mapper eksternt
- Vis fremdriften for overføringen
- Komprimer dataene under overføringen
- Overfør med båndbreddegrensen
- Overfør filene og mappene rekursivt
- Overfør med minimumsstørrelsesgrensen
- Overfør med maksimal størrelsesgrense
- Overfør filene av den spesielle typen
- Vis forskjellene mellom kilde- og destinasjonsfilene
- Inkluder eller ekskluder filene under overføringen
- Synkroniser dataene i tørrmodus
- 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.txtUtdataene 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 --progressFø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 tempdirrsync -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 temprsync --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.txtcat 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.jsonrsync -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 temprsync -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.
lser 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.