Hvordan du bruker rsync med eksempler

Hvordan du bruker rsync med eksempler
Rsync er et populært verktøy for filsynkronisering, både lokalt og eksternt. I motsetning til andre synkroniseringsverktøy, bruker Rsync en interessant algoritme som minimerer båndbreddeforbruk. Det flytter ganske enkelt delen av filen (e) som har endret seg.

Det er et kraftig verktøy som kan tjene i mange situasjoner. I denne artikkelen viser jeg hvordan jeg kommer i gang med Rsync med en demonstrasjon. Demonstrasjonen vil bli utført på Ubuntu 18.04.

Rsync

Rsync står for begrepet fjernsynkronisering. Til tross for navnet, kan den håndtere filsynkronisering eksternt og lokalt. Begrepet Rsync brukes også til å referere til Rsync -protokollen som Rsync bruker for synkronisering. I denne artikkelen vil Rsync alltid betegne verktøyet, ikke protokollen.

På grunn av sin rene popularitet er Rsync tilgjengelig på nesten hvert eneste Linux og Unix-lignende system. Det er en god sjanse for at det kommer forhåndsinstallert. Hvis ikke, kan du undersøke hvordan du installerer Rsync i systemet ditt.

Her er en kortliste med funksjoner Rsync -tilbud.

  • Katalog kopiering
  • Enkel sikkerhetskopikonfigurasjon
  • Kan jobbe over ssh
  • Kan kjøre som daemon/server
  • Filtillatelse oppbevaring

Rsync bruk

Før vi hopper inn i Rsync, trenger vi noen dummyfiler å jobbe med. La oss først lage en dummy -katalog.

$ mkdir -v primær

Når det er opprettet, er det på tide å lage en håndfull dummy -filer. For å opprette en fil, vil jeg bruke Touch -kommandoen. Lær mer om berøringskommandoen.

$ Touch Dummy 1… 20

Voila! Vi er nå klare til å bruke Rsync til å utføre handlinger ved hjelp av disse dummyfilene.

Rsync kommandostruktur

Rsync bruker følgende kommandostruktur.

$ rsync

Synkronisere lokale kataloger

Nå er det på tide å bruke Rsync for å synkronisere filer på flere destinasjoner. I dette eksemplet synkroniserer vi innholdet i DIR_PRIMARY til DIR_TARGET.

$ mkdir -v mål

Be Rsync om å synkronisere innholdet i begge katalogene.

$ rsync -v -r primær/ mål

Her har vi brukt to forskjellige argumenter.

-v: Ber Rsync om å løpe inn i Verbose -modus
-r: Rekursiv, påkrevd for katalogsynkronisering.

I dette neste eksemplet bruker vi et annet flagg.

$ rsync -v -et primær/ mål

-en: Et kombinasjonsflagg som står for “Arkiv”.

Ved hjelp av dette flagget vil Rsync synkronisere innholdet rekursivt mens de bevarer symbolsk, spesielle/enhetsfiler, modifiseringstider, filtillatelser, gruppe, eier osv. Det er mer brukt enn “-r” -flagget. For arkiv er dette en mer anbefalt metode.

Merket du at vi i alle kommandoene vi har kjørt så langt, i tilfelle av kilde, alltid beholder "//" etter navnet på katalogen? Dette for å fortelle Rsync at kilden er alt innholdet i kildekatalogen. Hvis “/” på slutten av kildekatalogen ikke brukes, vil Rsync ganske enkelt opprette en kopi av kildekatalogen i stedet for innholdet.

La oss sjekke det ut med et eksempel.

$ rsync -v -et primært mål

Sjekk utgangsresultatet.

$ tre -mål/

Det meste av tiden er dette ikke noe vi trenger. Avhengig av situasjonen kan det imidlertid komme til nytte.

Rsync testkjøring

Før du kjører en Rsync -kommando, er det alltid viktig å bekrefte at kommandoen vil utføre handlingen som forventet. Hvis du vil teste Rsync-handlingen for en bestemt kommando, kan du bruke "-n" eller "-dry-run" -flagget.

$ rsync -AVN primær/ mål
$ rsync -AVN primærmål

Her viser utgangen hva Rsync ville utføre hvis kommandoen faktisk ble kjørt. Når du tester, ikke glem å bruke "-v" -flagget for å få en nøyaktig representasjon av hva som skjer.

Rsync over en ekstern tilkobling

Dette er en annen interessant funksjon Rsync støtter. Hvis sikkerhetskopieringsstedet ditt er et sted fjernkontroll, kan du enkelt konfigurere Rsync for å utføre sikkerhetskopi på det eksterne stedet gjennom SSH. Imidlertid må begge maskinene ha Rsync installert. Dessuten må begge systemene også ha SSH -nøkler satt.

Klar? La oss komme i gang. Til å begynne med er det arkivsynkroniseringen.

$ rsync -a @:<
destinasjon_dir>

Her kalles denne operasjonen et "push" fordi den skyver en katalog fra det lokale systemet til et eksternt system. Det motsatte er kjent som "pull".

$ rsync -a @:

Rsync behandler det første argumentet som kilde, det andre som destinasjon.

Nyttige Rsync -alternativer

Rsync støtter massevis av alternativer. Alle av dem tjener sitt eget formål. Imidlertid brukes bare en håndfull av dem mesteparten av tiden. I denne delen, la oss se på noen nyttige Rsync -alternativer.

Det meste av tiden er filen (e) du er i ferd med å synkronisere. Ved hjelp av komprimering kan du spare både tid og båndbredde til bekostning av litt ekstra prosessorkraft. Rsync tilbyr komprimering som standard. For å utføre komprimert synkronisering, bruk "-z" -flagget.

$ rsync -avz

Dette interessante flagget kombinerer funksjonen til både "-progress" og "-partialt" flagg. Den første er å vise en fremdriftslinje for overføringen, og den andre er å gjøre det mulig å gjenoppta avbrutt overføring. Begge disse funksjonene er kombinert i “-p” -flagget.

$ rsync -avzp

La oss nå sjekke ut hvordan Rsync håndterer filen synkroniserer intelligent. Kjør forrige kommando igjen.

$ rsync -avzp

Her lastet ikke Rsync opp alle filene på nytt. I stedet hoppet det over de som ikke endret seg i det hele tatt. I dette eksemplet hoppet det over alle filene, da alle er til stede i destinasjonskatalogen.

Hva om du slettet en fil fra kildekatalogen? Som standard vil ikke Rsync slette noe fra destinasjonskatalogen. For å tvinge Rsync slette filer, bruk "-deleten" -flagget. Bruk imidlertid det tørre kjøringen for å teste om kommandoen fungerer som du vil.

$ rsync -AVN -Delete

Som standard vil Rsync synkronisere hver eneste fil/katalog fra kilden til destinasjonskatalogen. I visse situasjoner kan det være lurt å inkludere/ekskludere visse filer fra synkronisering. Rsync tilbyr nyttige alternativer som “-Exclude” og “-include” for å ekskludere/inkludere visse filer. Pass filmønsteret som verdien for disse argumentene.

$ rsync -avn -exclude = --inkluderer =

Du kan også definere den største filstørrelsen som Rsync skal synkronisere. For å gjøre det, bruk flagget “-max-størrelse” etterfulgt av filstørrelsen.

$ rsync -avn - -max -size = '10k'

Rsync har en annen interessant funksjon i ermet. Trenger ikke lenger kildefilen etter synkronisering? Rsync kan gjøre det, ikke noe problem. Forsikre deg imidlertid om at du ikke kjører Rsync med "-delete" -flagget. Ellers vil Rsync slette synkroniserte filer fra destinasjonen!

$ rsync -av-Fjern kildekilde-filer

Siste tanker

Dette er bare noen vanlige og enkle scenarioer med Rsync -bruk. Det tilbyr mye mer enn det. Det er mulig å automatisere Rsync -operasjoner ved å bruke enten Rsync Daemon eller annen skripting. Forhåpentligvis var denne guiden nyttig for å komme i gang med Rsync.

Interessert i mer Rsync? Vel, du kan bruke Rsync som filkopimaskin. Det er mer effektivt og intelligent enn CP. Mer dyptgående funksjoner og bruk finner du på Rsync Man-siden.

$ mann rsync

Nyt!