Slik bruker du Rsync til å synkronisere nye eller endrede/modifiserte filer i Linux


Som systemadministrator eller Linux-strømbruker har du sannsynligvis kommet over eller til og med ved flere anledninger brukt det allsidige Linux Rsync-verktøyet, som gjør det mulig for brukere å raskt kopiere eller synkronisere filer lokalt og eksternt. Det er også et flott verktøy som populært brukes for sikkerhetskopiering og speiling.

Noen av dens eminente funksjoner og fordeler inkluderer; den er usedvanlig allsidig ved at den kan kopiere lokalt, til/fra et eksternt skall eller ekstern rsync, den er også bemerkelsesverdig fleksibel, slik at brukere kan spesifisere et hvilket som helst antall filer som skal kopieres.

Foreslått lesing: 10 praktiske eksempler på Rsync-kommandoer i Linux

Videre tillater den kopiering av lenker, enheter, fil- eller katalogeier, grupper og tillatelser. Den støtter også bruk uten root-privilegier kombinert med mange flere.

En viktig forskjell på rsync sammenlignet med andre fil-coying-kommandoer i Linux er bruken av ekstern oppdateringsprotokoll, for å overføre bare forskjellen mellom filer eller kataloginnhold.

Derfor skal vi i denne artikkelen undersøke hvordan rsync kan hjelpe oss å bare synkronisere nye eller endrede filer eller kataloginnhold mens vi tar sikkerhetskopier og utover i Linux.

Til å begynne med må du huske at den konvensjonelle og enkleste formen for bruk av rsync er som følger:

rsync options source destination 

Når det er sagt, la oss dykke ned i noen eksempler for å avdekke hvordan konseptet ovenfor faktisk fungerer.

Synkronisere filer lokalt ved hjelp av Rsync

Ved å bruke kommandoen nedenfor kan du kopiere filer fra katalogen Dokumenter til katalogen /tmp/documents lokalt:

rsync -av Documents/* /tmp/documents

I kommandoen ovenfor, alternativet:

  1. -a – betyr arkivmodus
  2. -v – betyr detaljert, viser detaljer om pågående operasjoner

Som standard kopierer rsync bare nye eller endrede filer fra en kilde til destinasjon, når jeg legger til en ny fil i katalogen Dokumenter, er dette hva som skjer etter å ha kjørt den samme kommandoen andre gang:

rsync -av Documents/* /tmp/documents

Som du kan se og legge merke til fra utdataene fra kommandoen, kopieres bare den nye filen til målkatalogen.

Foreslått lesing: Hvordan synkronisere to Apache-nettservere/-nettsteder ved hjelp av Rsync

Alternativet --update eller -u lar rsync hoppe over filer som fortsatt er nye i målkatalogen, og ett viktig alternativ, --dry-run eller -n gjør det mulig for oss å utføre en testoperasjon uten å gjøre noen endringer. Den viser oss hvilke filer som skal kopieres.

rsync -aunv Documents/* /tmp/documents

Etter å ha utført en testkjøring, kan vi gjøre unna -n og utføre en reell operasjon:

rsync -auv Documents/* /tmp/documents

Synkronisering av filer fra lokalt til eksternt Linux

I eksemplet nedenfor kopierer jeg filer fra min lokale maskin til en ekstern server med IP-adressen – 10.42.1.5. For å bare synkronisere nye filer på den lokale maskinen, som ikke finnes på den eksterne maskinen, kan vi inkludere alternativet --ignore-existing:

rsync -av --ignore-existing Documents/* [email :~/all/

Deretter, for å synkronisere bare oppdaterte eller modifiserte filer på den eksterne maskinen som har endret seg på den lokale maskinen, kan vi utføre en tørrkjøring før vi kopierer filer som nedenfor:

rsync -av --dry-run --update Documents/* [email :~/all/
rsync -av --update Documents/* [email :~/all/

For å oppdatere eksisterende filer og forhindre oppretting av nye filer på destinasjonen, bruker vi alternativet --eksisterende.

Du kan kjøre gjennom man rsync-siden for å oppdage flere nyttige alternativer for avansert bruk, som jeg nevnte tidligere, rsync er et veldig kraftig og allsidig Linux-verktøy, og mange system Administratorer og superbrukere av Linux vet hvor fordelaktig det er.

Viktigst av alt, du kan like godt dele ditt syn på eksemplene vi har dekket her, eller enda bedre, gi oss verdifulle tips om bruk av dette viktige kommandolinjeverktøyet gjennom kommentarfeltet nedenfor.