27Jun

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

click fraud protection

banner

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."

rsync1
Kommandoen på Red Hat / CentOS, etter logg inn som root( merk at noen siste distribusjoner av Red Hatstøtte sudo-metoden).

rsync4
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 vil følgende kodekode være tilstrekkelig:

instagram viewer

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

Koden ovenfor synkroniserer innholdet i Directory1 til Directory2, og lar 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 til å tilpasse det til dine spesifikke behov. Her er hva den nevnte koden forteller rsync å gjøre med sikkerhetskopiene:

1. -a = rekursiv( resurse til kataloger), koblinger( kopiere symlinks som symlinks), perms( bevare tillatelser), ganger( bevare modifikasjonstider), gruppe( bevare gruppe), eier( bevare 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.

rsync2

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.

Som om dekker det så langt som lokale sikkerhetskopier. 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 til eksterne sikkerhetskopieringer

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 installer ssh rsync

# sudo apt-get installer ssh rsync

Annet enn å installere SSH og rsync på serveren, er alt som virkelig trenger å bli gjort, å sette opp depotene på serveren der du vil at filene støttesopp, 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/

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

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

rsync3

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.

Automatisere 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 tabellfilen for brukeren du er logget inn som, kjør:

$ crontab-

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 klokka 22:00:

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

Den første "0" angir minuttets minutt og "22" angir klokken 10.00.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 escape, og skriv deretter ": wq"( uten anførselstegn) og trykk enter. Dette lagrer endringene i vi.

Cron kan få mye mer grundig enn dette, men å fortsette 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/ arkiv.zip /Directory1/ &rsync -av - delete /ZippedFiles/ /Directory2/

rsync5

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å kilobyteneav endrede data.

Det finnes 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-script kan spare deg for å miste dataene dine.