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

Innholdsfortegnelse:

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

Video: Slik bruker du rsync til å sikkerhetskopiere dataene dine på Linux

Video: Slik bruker du rsync til å sikkerhetskopiere dataene dine på Linux
Video: Ice Cube - It Was A Good Day - YouTube 2024, April
Anonim
rsync er en protokoll bygget for Unix-lignende systemer som gir utrolig allsidighet for sikkerhetskopiering og synkronisering av data. Den kan brukes lokalt for å sikkerhetskopiere filer til forskjellige kataloger eller kan konfigureres til å synkronisere over Internett til andre verter.
rsync er en protokoll bygget for Unix-lignende systemer som gir utrolig allsidighet for sikkerhetskopiering og synkronisering av data. Den kan brukes lokalt for å sikkerhetskopiere filer til forskjellige kataloger eller kan konfigureres til å synkronisere over Internett til andre verter.

Den kan brukes på Windows-systemer, men er bare tilgjengelig gjennom ulike porter (for eksempel Cygwin), så i dette hvordan skal vi snakke om å sette opp det 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."

 Kommandoen på Red Hat / CentOS, etter at du har logget inn som root (merk at noen nylig distribuerte Red Hat støtter sudo-metoden).
Kommandoen på Red Hat / CentOS, etter at du har logget inn som root (merk at noen nylig distribuerte Red Hat støtter sudo-metoden).
 Kommandoen på Debian / Ubuntu.
Kommandoen på Debian / Ubuntu.

Bruke rsync for lokale sikkerhetskopier

I den første delen av denne opplæringen vil vi sikkerhetskopiere filene fra Directory1 til Directory2. Begge disse katalogene er på samme harddisk, men dette ville fungere nøyaktig det samme hvis katalogene eksisterte på to forskjellige stasjoner. Det er flere forskjellige måter vi kan nærme seg dette, avhengig av hva slags sikkerhetskopier du vil konfigurere. For de fleste formål er følgende linje av kode nok:

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

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

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

1. -a = rekursiv (resurse til kataloger), linker (kopiere symlinks som symlinks), perms (bevare tillatelser), ganger (bevare modifikasjonstider), gruppe (bevare gruppe), eier (beholde eier), bevare enhetsfiler og bevare spesielle filer. 2. -v = verbose. Grunnen til at jeg tror at det er viktig er at du kan se nøyaktig hva rsync støtter. Tenk på dette: Hva om harddisken din går dårlig, og begynner å slette filer uten din kunnskap, så kjører du rsync scriptet ditt, og det skyver disse endringene i sikkerhetskopiene dine, og sletter dermed alle forekomster av en fil du ikke vil få bli kvitt? 3. -delete = Dette forteller rsync å slette filer som er i Directory2 som ikke er i Directory1. Hvis du velger å bruke dette alternativet, anbefaler jeg også å bruke de omtalte alternativene, av årsaker som er nevnt ovenfor.

Bruke skriptet ovenfor, her er resultatet generert ved å bruke rsync til å sikkerhetskopiere Directory1 til Directory2. Vær oppmerksom på at du ikke vil motta slik detaljert informasjon uten den verbose bryteren.

Skjermbildet ovenfor forteller oss at File1.txt og File2.jpg ble oppdaget som enten nye eller på annen måte endret fra kopiene som finnes i Directory2, og de ble derfor sikkerhetskopiert. Noob tips: Legg merke til de etterfølgende skråstreket på slutten av katalogene i min rsync-kommando - det er nødvendig, husk å huske dem.
Skjermbildet ovenfor forteller oss at File1.txt og File2.jpg ble oppdaget som enten nye eller på annen måte endret fra kopiene som finnes i Directory2, og de ble derfor sikkerhetskopiert. Noob tips: Legg merke til de etterfølgende skråstreket på slutten av katalogene i min rsync-kommando - det er nødvendig, husk å huske dem.

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

Det som dekker det så langt som lokale sikkerhetskopier er bekymret. Som du kan fortelle, er rsync veldig enkelt å bruke. Det blir litt mer komplekst når du bruker det 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åter for eksterne sikkerhetskopier, men vi vil gå over den mest praktiske (også den enkleste og sikreste) metoden for tunneling rsync gjennom SSH. De fleste servere og til og med mange kunder har allerede SSH, og det kan brukes til rsync-sikkerhetskopiene. Vi vil vise deg prosessen for å få en Linux-maskin til å sikkerhetskopiere til en annen på 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 på hvilket som helst nettverksutstyr på serverens side av tingene.

På serveren (datamaskinen som mottar sikkerhetskopiene), må du kontrollere at SSH og rsync er installert.

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

Annet enn å installere SSH og rsync på serveren, er alt som virkelig må gjøres, å sette opp depotene på serveren der du vil at filene skal sikkerhetskopieres, og sørg for at SSH er låst ned. Pass på at brukeren du planlegger å bruke, har et komplekst passord, og det kan også være lurt å bytte porten som SSH lytter på (standard er 22).

Vi kjører samme kommando som vi gjorde for å bruke rsync på en lokal datamaskin, men inkluderer de nødvendige tilleggene for tunneling rsync gjennom SSH til en server på mitt lokale nettverk. For brukerens "geek" kobler til "192.168.235.137" og bruker de samme bryterne som ovenfor (-av -delete), kjører vi følgende:

$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/

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

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Som du ser fra skjermbildet ovenfor, er utdataene gitt når du sikkerhetskopierer på tvers av nettverket, omtrent det samme som når du sikkerhetskopierer lokalt, er det eneste som endres, kommandoen du bruker. Legg merke til at det ble bedt om et passord.Dette er å godkjenne med SSH. Du kan sette opp RSA-taster for å hoppe over denne prosessen, som også vil forenkle automatiseringen av rsync.
Som du ser fra skjermbildet ovenfor, er utdataene gitt når du sikkerhetskopierer på tvers av nettverket, omtrent det samme som når du sikkerhetskopierer lokalt, er det eneste som endres, kommandoen du bruker. Legg merke til at det ble bedt om et passord.Dette er å godkjenne med SSH. Du kan sette opp RSA-taster for å hoppe over denne prosessen, som også vil forenkle automatiseringen av rsync.

Automatiserer rsync-sikkerhetskopier

Cron kan brukes på Linux for å automatisere utførelsen av kommandoer, for eksempel rsync. Ved hjelp av Cron kan vi ha vårt Linux-system kjørt nattlige sikkerhetskopier, eller hvor ofte du vil at de skal kjøre.

For å redigere cron tabellen filen for brukeren du er logget inn som, kjør:

$ crontab -e

Du må være kjent med vi for å kunne redigere denne filen. Skriv "I" for innsetting, og start deretter redigering av cron tabellfilen.

Cron bruker følgende syntaks: minuttets minutt, klokkeslett, dag i måneden, årets måned, ukedag, kommando.

Det kan være litt forvirrende først, så la meg gi deg et eksempel. Følgende kommando vil kjøre rsync kommandoen hver kveld klokken 22.00:

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

Den første "0" angir minuttets minutt, og "22" angir 10 PM. Siden vi vil at denne kommandoen skal løpe daglig, vil vi legge resten av feltene med asterisker 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 lagrer endringene i vi.

Cron kan få mye mer dyptgående enn dette, men å fortsette om det ville være utenfor omfanget av denne opplæringen. De fleste vil bare ha en enkel ukentlig eller daglig sikkerhetskopiering, og det vi har vist kan du enkelt oppnå det. For mer informasjon om Cron, vennligst se mannens sider.

Andre nyttige funksjoner

En annen nyttig ting du kan gjøre er å sette sikkerhetskopiene i en zip-fil. Du må spesifisere hvor du vil at zip-filen skal plasseres, og deretter rsync den katalogen til backupkatalogen din. For eksempel:

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

Kommandoen ovenfor tar filene fra Directory1, setter dem i /ZippedFiles/archive.zip og deretter rsyncs som mapper til Directory2. I utgangspunktet kan du tenke at denne metoden vil vise seg ineffektiv for store sikkerhetskopier, da zip-filen vil endres hver gang den minste endringen blir gjort til en fil. Imidlertid overfører rsync bare de endrede dataene, så hvis zip-filen din er 10 GB, og deretter legger du til en tekstfil i Directory1, vil rsync vite at alt er lagt til (selv om det er i en zip) og bare overfør de få kilobytene av endrede data.
Kommandoen ovenfor tar filene fra Directory1, setter dem i /ZippedFiles/archive.zip og deretter rsyncs som mapper til Directory2. I utgangspunktet kan du tenke at denne metoden vil vise seg ineffektiv for store sikkerhetskopier, da zip-filen vil endres hver gang den minste endringen blir gjort til en fil. Imidlertid overfører rsync bare de endrede dataene, så hvis zip-filen din er 10 GB, og deretter legger du til en tekstfil i Directory1, vil rsync vite at alt er lagt til (selv om det er i en zip) og bare overfør de få kilobytene av endrede data.

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

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

Anbefalt: