/ / Hvordan bruke rsync for å sikkerhetskopiere dataene dine på Linux

Slik bruker du rsync for å sikkerhetskopiere dataene dine på Linux

banner

rsync er en protokoll bygd for Unix-lignende systemersom gir utrolig allsidighet for sikkerhetskopiering og synkronisering av data. Det kan brukes lokalt til å sikkerhetskopiere filer til forskjellige kataloger, eller kan konfigureres for å synkronisere over Internett til andre verter.

Det kan brukes på Windows-systemer, men er baretilgjengelig gjennom forskjellige porter (for eksempel Cygwin), så i denne veiledningen vil vi snakke om å sette den opp på Linux. Først må vi installere / oppdatere rsync-klienten. På Red Hat-distribusjoner er kommandoen “yum install rsync” og på Debian er det “sudo apt-get install rsync.”

rsync1

Kommandoen på Red Hat / CentOS, etter innlogging som root (merk at noen nylige distribusjoner av Red Hat støtter sudo-metoden).

rsync4

Kommandoen på Debian / Ubuntu.

Bruker rsync for lokale sikkerhetskopier

I den første delen av denne opplæringen kommer vi tilbakeopp filene fra Directory1 til Directory2. Begge disse katalogene er på samme harddisk, men dette ville fungert nøyaktig det samme hvis katalogene eksisterte på to forskjellige stasjoner. Det er flere forskjellige måter vi kan nærme oss dette på, avhengig av hva slags sikkerhetskopi du vil konfigurere. For de fleste formål vil følgende kodelinje være tilstrekkelig:

$ rsync -av --delete /Directory1/ /Directory2/

Koden over vil synkronisere innholdet iKatalog1 til katalog2, og etterlater ingen forskjeller mellom de to. Hvis rsync finner ut at Directory2 har en fil som Directory1 ikke har, vil den slette den. Hvis rsync finner en fil som er endret, opprettet eller slettet i Directory1, vil den gjenspeile de samme endringene til Directory2.

Det er mange forskjellige brytere som du kan bruke til rsync for å tilpasse den til dine spesifikke behov. Dette er hva den nevnte koden forteller rsync å gjøre med sikkerhetskopiene:

1. -a = rekursiv (rekruttere til kataloger), lenker (kopiere symlenker som symlink), perms (bevare tillatelser), ganger (bevare endringstider), gruppe (bevare gruppe), eier (bevare eier), bevare enhetsfiler og bevare spesielle filer.
2. -v = verbose. Årsaken til at jeg mener at verbose er viktig er at du kan se nøyaktig hva rsync sikkerhetskopierer. Tenk på dette: Hva om harddisken din går dårlig, og begynner å slette filer uten din viten, så kjører du rsync-skriptet ditt, og det skyver endringene i sikkerhetskopiene dine, og dermed slettes alle forekomster av en fil du ikke ønsket å få bli kvitt?
3. –Delete = Dette ber rsync slette alle filer som er i Directory2 som ikke er i Directory1. Hvis du velger å bruke dette alternativet, anbefaler jeg at du bruker ordene med ord, av grunner nevnt over.

Ved å bruke skriptet over, er her utdataene som genereres ved å bruke rsync til sikkerhetskopiering av Directory1 til Directory2. Vær oppmerksom på at uten verbosbryteren, ville du ikke motta så detaljert informasjon.

rsync2

Skjermbildet over forteller oss at File1.txt og File2.jpg ble oppdaget som enten nye eller endret fra kopiene som eksisterer i Directory2, og slik at de ble sikkerhetskopiert. Noob-tips: Legg merke til de etterfølgende skråstrekene på slutten av katalogene i rsync-kommandoen min - de er nødvendige, husk dem.

Vi vil gå over noen flere nyttige brytere mot slutten av denne opplæringen, men bare husk at for å se en full liste kan du skrive “man rsync” og se en fullstendig liste over brytere som skal brukes.

Det omtrent dekker det så langt som lokale sikkerhetskopier erbekymret. Som du kan si, er rsync veldig enkel å bruke. Det blir litt mer sammensatt når du bruker dem til å synkronisere data med en ekstern vert over Internett, men vi vil vise deg en enkel, rask og sikker måte å gjøre det på.

Bruke rsync for eksterne sikkerhetskopier

rsync kan konfigureres på flere forskjellige måterfor eksterne sikkerhetskopieringer, men vi vil gå over den mest praktiske (også den enkleste og sikreste) metoden for å tunnelere rsync gjennom SSH. De fleste servere og til og med mange klienter har allerede SSH, og det kan brukes til rsync-sikkerhetskopieringer. Vi vil vise deg prosessen for å få en Linux-maskin til å ta sikkerhetskopi til en annen i et lokalt nettverk. Prosessen ville være nøyaktig den samme hvis en vert var ute på internett et sted, bare vær oppmerksom på at port 22 (eller hvilken port du har SSH-konfigurert på), må sendes videre til noe nettverksutstyr på serverens side av tingene.

Kontroller at SSH og rsync er installert på serveren (datamaskinen som vil motta sikkerhetskopiene).

# yum -y installer ssh rsync

# sudo apt-get install ssh rsync

Annet enn å installere SSH og rsync påserver, alt som virkelig må gjøres er å konfigurere depotene på serveren der du ønsker filene sikkerhetskopiert, og sørge for at SSH er låst. Forsikre deg om at brukeren du planlegger å bruke har et sammensatt passord, og det kan også være en god idé å slå på porten som SSH lytter på (standard er 22).

Vi vil kjøre den samme kommandoen som vi gjorde forbruker rsync på en lokal datamaskin, men inkluderer nødvendige tillegg for tunneling av rsync gjennom SSH til en server på mitt lokale nettverk. For bruker “geek” som kobler til “192.168.235.137” og bruker de samme bryterne som ovenfor (-av – slett), kjører vi følgende:

$ rsync -av –delete -e ssh /Directory1/ geek@192.168.235.137:/Directory2/

Hvis du har SSH-lytting på noen annen port enn 22, må du spesifisere portnummeret, for eksempel i dette eksemplet der jeg bruker port 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ geek@192.168.235.137:/Directory2/

rsync3

Som du kan se fra skjermdumpen over,output gitt når du sikkerhetskopierer over nettverket er stort sett det samme som når du tar sikkerhetskopi lokalt, det eneste som endres er kommandoen du bruker. Legg også merke til at det ble bedt om et passord. Dette er for å autentisere med SSH. Du kan sette opp RSA-nøkler for å hoppe over denne prosessen, noe som også vil forenkle automatisering av rsync.

Automatisering av rsync-sikkerhetskopieringer

Cron kan brukes på Linux for å automatisere utførelsen av kommandoer, for eksempel rsync. Ved hjelp av Cron kan vi få Linux-systemet til å kjøre nattlige sikkerhetskopier, eller hvor ofte du ønsker at de skal kjøre.

Hvis du vil redigere cron-tabellfilen for brukeren du er logget inn som, kjører du:

$ crontab -e

Du må være kjent med vi for å redigere denne filen. Skriv inn "I" for innsetting, og begynn deretter å redigere cron-tabellfilen.

Cron bruker følgende syntaks: minutt av time, time på dagen, dag i måneden, måned i året, ukedag, kommando.

Det kan være litt forvirrende med det første, så la meg gi deg et eksempel. Følgende kommando kjører rsync-kommandoen hver kveld klokka 22.00:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Den første "0" spesifiserer timens minutt, og "22" spesifiserer 22.00. Siden vi vil at denne kommandoen skal kjøres daglig, vil vi la resten av feltene ligge med stjerner og deretter lime inn rsync-kommandoen.

Når du er ferdig med å konfigurere Cron, trykk på escape, og skriv deretter “: wq” (uten anførselstegn) og trykk enter. Dette vil lagre endringene i vi.

Cron kan få mye mer dyptgående enn dette, menå fortsette med det ville være utenfor omfanget av denne opplæringen. De fleste vil bare ha en enkel ukentlig eller daglig sikkerhetskopi, og det vi har vist deg, kan du enkelt gjøre. For mer info om Cron, se mansidene.

Andre nyttige funksjoner

En annen nyttig ting du kan gjøre er å legge dinsikkerhetskopierer til en zip-fil. Du må spesifisere hvor du vil at zip-filen skal plasseres, og deretter synkronisere katalogen til sikkerhetskopikatalogen. For eksempel:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

rsync5

Kommandoen over tar filene fraDirectory1, setter dem i /ZippedFiles/archive.zip og rsynkroniserer deretter den katalogen til Directory2. Til å begynne med kan du tro at denne metoden vil vise seg ineffektiv for store sikkerhetskopieringer, med tanke på at zip-filen vil endres hver gang den minste endringen gjøres i en fil. Imidlertid overfører rsync bare de endrede dataene, så hvis zip-filen din er 10 GB, og så legger du til en tekstfil til Directory1, vil rsync vite at det er alt du har lagt til (selv om den er i en zip) og overføre bare noen få kilobyte av endrede data.

Det er et par forskjellige måter du kan gjørekryptere rsync-sikkerhetskopiene. Den enkleste metoden er å installere kryptering på selve harddisken (den som filene dine sikkerhetskopieres til). En annen måte er å kryptere filene dine før du sender dem til en ekstern server (eller annen harddisk, uansett hva du sikkerhetskopierer). Vi behandler disse metodene i senere artikler.

Uansett hvilke alternativer og funksjoner du velger, viser rsync seg å være et av de mest effektive og allsidige backupverktøyene til dags dato, og til og med et enkelt rsync-skript kan redde deg fra å miste dataene dine.