Rsync-kommandoen (ekstern synkronisering) er et Linux / Unix-verktøy som brukes til å synkronisere og kopiere filer og kataloger enten lokalt eller eksternt. De fleste Linux-geeks bruker Rsync til å speile, sikkerhetskopiere eller migrere data over mapper, på tvers av disker og nettverk. En bemerkelsesverdig funksjon med Rsync-kommandoen er at den bruker "deltaoverføringsalgoritmen.”
Delta Transfer algoritme fungerer ved å oppdatere destinasjonskatalogen med innholdet i kildedestinasjonen. Hvis det opprettes en endring eller en ny fil i kildekatalogen, blir bare den spesielle endringen kopiert til målkatalogen når du kjører Rsync-kommandoen. For å synkronisere filer og kataloger mellom den lokale og en ekstern maskin, bruker Rsync SSH.
Installere Rsync i Linux
Rsync-kommandoen er forhåndsinstallert i de fleste Linux-operativsystemer. Dette kan imidlertid ikke være tilfelle for noen minimale installasjoner. Du kan installere Rsync ved å kjøre kommandoene nedenfor i en terminal.
På CentOS & RHEL
yum install rsync -y
På Ubuntu og andre Debian-distribusjoner
sudo apt installere rsync -y
Rsync Grunnleggende syntaks
rsync-alternativer kildedestinasjon
Noen av standardalternativene / parametrene som brukes med Rsync-kommandoen:
-v: -verbose Verbose output
-r: kopierer data rekursivt
-z: komprimere fildata
-h: Gir utdata i et lesbart format
-a: arkiver filer og katalog under synkronisering
-progress Viser fremdriften til Rsync-oppgavene som for øyeblikket kjører.
Du kan se alle alternativene som er tilgjengelige for Rsync-kommandoen ved hjelp av “-help” -alternativet.
$ rsync - hjelp
Topp 20 Rsync-eksempler i Linux
Med den detaljerte informasjonen i tankene, la oss komme i gang med 20 nyttige Rsync-eksempelkommandoer du kan bruke med Linux-systemer. Operativsystemet vårt er Ubuntu 20.04 LTS; imidlertid bør syntaksen også fungere for andre Linux-distribusjoner med Rsync installert.
1. Kopier / synkroniser filer lokalt med -v (detaljert) alternativ
Det er den mest grunnleggende Rsync-kommandoen, selv for en nybegynner. I dette eksemplet vil vi kopiere filer mellom 'Opprinnelig'katalog på skrivebordet til'Sikkerhetskopiering'katalog i' / etc.' mappe. Vi vil inkludere -v (Verbose) -alternativet slik at rsync kan gi informasjon om hva som skjer.
rsync -v Original /
En ting å merke seg med Rsync er at hvis destinasjonskatalogen ikke eksisterer, vil den automatisk opprette den. La oss se eksemplet nedenfor der vi vil kopiere filer til katalogen “Foss”Det eksisterer ikke.
2. Synkroniser / kopier filer og kataloger rekursivt med alternativet -r
I kommandoen ovenfor, Hvis det var en katalog til stede i 'Opprinnelig'-mappe, vil den bli hoppet over. Det er illustrert i bildet nedenfor.
For å løse dette, bruk alternativet -r (rekursivt).
3. Synkroniser / kopier filer mellom den lokale maskinen og den eksterne maskinen
Før du utfører denne oppgaven, er det flere parametere du trenger å vite om den eksterne serveren / maskinen: IP-adressen, brukernavnet og brukerpassordet.
Den grunnleggende syntaksen vi vil bruke er:
rsync [opsjoner] [filer] [eksternt brukernavn] @ [ip-adresse]: / [destinasjon]
La oss kopiere filer fra vår 'Opprinneligkatalog på skrivebordet til en ekstern server.
4. Synkroniser / kopier filer og kataloger fra en ekstern server til din lokale PC
Akkurat som den forrige kommandoen, må vi vite IP-adressen til den eksterne serveren. I dette eksemplet vil vi synkronisere filer i 'Sikkerhetskopieringmappen i serverens hjemmekatalog til vår lokale PC.
rsync -rv tuts @ 192.168.1.64: / home / tuts / Backup / home / tuts / Desktop / Original
5. Bruk Rsync over SSH med alternativet -e
For å sikre sikkerheten til filer og mapper, vil vi bruke Rsync over Secure Shell Protocol (SSH). I tillegg, når du oppgir rot- / brukerpassordet - vil SSH tilby krypteringstjenester, slik at de er trygge.
For å bruke SSH, vil vi legge til alternativet -e som spesifiserer protokollen vi vil bruke.
rsync -vre ssh Original / * tuts @ 192.168.1.64: / hjem / tuts
6. Vis fremgang med Rsync-kommandoen
I situasjoner der du kopierer flere filer eller en enorm fil, vil du vite at fremdriften vil være effektiv. Heldigvis har rsync dette alternativet --framgangalternativet.
sudo rsync -rv --progress Original / * / etc / Foss
7. Bruk Rsync med alternativet '-include'
Det er situasjoner der du bare vil synkronisere bestemte filer. Med Rsync-kommando forårsaker du-inkludere'mulighet til å utføre oppgaven. I dette eksemplet vil vi bare synkronisere filer som begynner med 'I' -bokstaven.
sudo rsync -vr - inkluderer 'I *' Original / / etc / Backup /
8. Bruk Rsync med '-exclude' for å ignorere bestemte filer
Med Rsync '-utelukke'alternativ, kan du ekskludere filer du ikke vil synkronisere / kopiere. I dette eksemplet ønsker vi å ignorere alle filer som begynner med 'jeg'-bokstaven.
sudo rsync -vr - ekskluder 'I *' Original / / etc / Backup /
Alternativt kan du bruke begge alternativene i en kommando. Se eksemplet nedenfor.
sudo rsync -vr --ekskluder '*' - inkluderer 'I *' Original / / etc / Backup /
Vi ekskluderer alle filer bortsett fra de som begynner med bokstaven 'I.'
9. Bruk Rsync med -delete-kommandoen
Det er situasjoner der det er filer til stede i destinasjonskatalogen, men ikke i kildemappen. For synkronisering er det best å først fjerne slike filer fra destinasjonskatalogen. Heldigvis kommer Rsync med '-slett'alternativet, som gjør dette automatisk.
Hvis en fil er tilstede i målkatalogen, men ikke i kilden, vil den slette den.
rsync -vr --delete / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Backup
10. Angi maksimal størrelse på filer som skal overføres med Rsync
Hvis du er opptatt av lagringsplass eller båndbredde for ekstern filsynkronisering, må du bruke alternativet '-max-size' med Rsync-kommandoen. Dette alternativet lar deg angi maksimal størrelse på en fil som kan kopieres.
For eksempel en-maks størrelse = 100k'vil bare overføre data som er lik eller mindre enn 100 kilobyte.
rsync -vr --max-size = '200k' / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Backup
11. Slett kildefiler automatisk etter vellykket overføring
Ta en situasjon der du har en ekstern sikkerhetskopieringsserver og en sikkerhetskopikatalog på PC-en. Du sikkerhetskopierer data til sikkerhetskopimappen på PCen din før du synkroniserer den med sikkerhetskopiserveren. Etter hver synkronisering må du slette dataene i sikkerhetskopikatalogen.
Heldigvis kan du gjøre dette automatisk med '--fjerne kildefileralternativet.
Ved å kjøre en 'ls' kommando på kildemappen, bekrefter vi at filene faktisk ble slettet.
12. Utfør tørrkjøring med Rsync
For nybegynnere som ikke er sikre på Rsync-kommandoen, kan du ødelegge innholdet i destinasjonskatalogen, og angre kan være mye så kjedelig. Med '-tørrkjøring'alternativ, Rsync-kommandoen vil gi deg en utgang av hva som skal utføres, men det vil ikke gjøre det.
Derfor kan du se på denne utgangen hvis det er hva du forventer før du går til å fjerne '-tørrkjøringalternativet.
rsync -vr - tørrkjørt Original / * tuts @ 192.168.1.64: / home / tuts / Backup
1. 3. Sett båndbreddegrense som kreves for å overføre filer.
Hvis du er på et delt nettverk eller kjører flere programmer som trenger en internettforbindelse, ville det være effektivt å sette en båndbreddegrense som kreves for å synkronisere / kopiere filer eksternt. Vi kan gjøre dette med Rsync '-bwlimitalternativet.
Denne hastigheten beregnes i kilobyte. Derfor når-bwlimit = 1000'betyr at bare 1000Kb kan overføres per sekund.
rsync -vr --bwlimit = 1000 Original / * tuts @ 192.168.1.64: / home / tuts / Backup
14. Synkroniser hele filene med Rsync
Som standard synkroniserer Rsync bare de modifiserte blokkene og byte. Derfor, hvis du hadde synkronisert en tekstfil før og senere lagt til noen tekster i kildefilen når du synkroniserer, blir bare den innsatte teksten kopiert. Hvis du vil synkronisere hele filen på nytt, må du bruke alternativet '-W'.
rsync -vrW Original / * tuts @ 192.168.1.64: / home / tuts / Backup
15. Ikke synkroniser / kopier modifiserte filer i målkatalogen
Det er situasjoner der du har gjort endringer i filer som er tilstede i målmappen. Hvis du kjører en Rsync-kommando, vil disse endringene bli overskrevet av dem i kildefilen. For å unngå slikt, bruk alternativet '-u'.
rsync -vu Original / * tuts @ 192.168.1.64: / home / tuts / Backup
16. Bruk alternativet Rsync med -i for å se forskjellen i filer mellom kilde og destinasjon
Hvis du vil vite hvilke nye endringer som blir gjort i destinasjonskatalogen, bruker du alternativet '-i', som viser forskjellen i filer mellom kilde- og destinasjonskatalogen.
rsync -avzi Original / Backup /
Form utdataene i bildet over, og vi ser en fil som heter 'heloo.py ' ikke til stede i destinasjonskatalogen. La oss se på noen av disse parametrene.
d: viser en endring i destinasjonsfilen
f: representerer en fil
t: viser en endring i tidsstempel
s: indikerer en endring i størrelsen på en fil
17. Bruk Rsync til å bare kopiere katalogstruktur
Du kan bruke Rsync til å synkronisere bare katalogstrukturen hvis du ikke er interessert i filene. Vi må bruke parametrene -f ”+ * /” -f ”- *” før kildekatalogen.
rsync -av -f "+ * /" -f "- *" / home / tuts / Desktop / Original / / home / tuts / Documents /
18. Legg til datostempel i katalognavnet
Hvis du vil spore når overføring fant sted uten å åpne katalogegenskaper, kan du enkelt legge til en dato i katalognavnet. Det vil legge til et datostempel for alle synkroniseringer du gjør med Rsync.
For å gjøre det, vil vi legge til $ (dato + \\% Y - \\% m - \\% d) til destinasjonskatalogen.
sudo rsync -rv Original / / etc / $ (dato + \\% Y - \\% m - \\% d)
19. Kopier en enkelt fil lokalt
For å synkronisere / kopiere en enkelt fil med Rsync, må du spesifisere filbanen etterfulgt av målkatalogbanen.
rsync -v Original / heloo.py Backup /
20. Kopierer flere filer eksternt
For å kopiere flere filer samtidig, må du oppgi stien til dem alle. Denne metoden er effektiv for bare et lite antall filer.
rsync -vr / home / tuts / Desktop / Original / heloo.py / home / tuts / Desktop / Backup / index.html tuts @ 192.168.1.64: / home / tuts / Backup
Det handler om de 20 mest nyttige Rsync-eksemplene som gjør at du kan synkronisere filer og kataloger både lokalt og eksternt. Legg gjerne igjen din tilbakemelding og kommentarer nedenfor.