27Jun

Sådan bruges rsync til sikkerhedskopiering af dine data på Linux

banner

rsync er en protokol bygget til Unix-lignende systemer, der giver utroligt alsidighed til sikkerhedskopiering og synkronisering af data. Det kan bruges lokalt til at sikkerhedskopiere filer til forskellige mapper eller kan konfigureres til at synkronisere på tværs af internettet til andre værter.

Den kan bruges på Windows-systemer, men er kun tilgængelig via forskellige porte( f.eks. Cygwin), så i dette how-to vil vi tale om at sætte det op på Linux. Først skal vi installere / opdatere rsync klienten. På Red Hat-distributioner er kommandoen "yum install rsync", og på Debian er det "sudo apt-get install rsync".

rsync1
Kommandoen på Red Hat / CentOS, efter at du logger ind som root( bemærk at nogle nylige distributioner af Red Hatstøtte sudo-metoden).

rsync4
Kommandoen på Debian / Ubuntu.

Brug af rsync til lokale sikkerhedskopieringer

I den første del af denne vejledning vil vi sikkerhedskopiere filerne fra Directory1 til Directory2.Begge disse mapper er på samme harddisk, men det ville fungere præcis det samme, hvis mapperne eksisterede på to forskellige drev. Der er flere forskellige måder, vi kan henvende os til, afhængigt af hvilken slags sikkerhedskopier du vil konfigurere. For de fleste formål er følgende kodelængde tilstrækkelig:

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

Koden ovenfor synkroniserer indholdet af Directory1 til Directory2 og giver ingen forskel mellem de to. Hvis rsync finder ud af, at Directory2 har en fil, som Directory1 ikke gør, vil den slette den. Hvis rsync finder en fil, der er blevet ændret, oprettet eller slettet i Directory1, afspejler den samme ændringer i Directory2.

Der er mange forskellige switche, som du kan bruge til rsync til at tilpasse det til dine specifikke behov. Her er, hvad ovennævnte kode fortæller rsync at gøre med sikkerhedskopieringen:

1. -a = rekursiv( rekursér i mapper), links( kopi symlinks som symlinks), perms( bevare tilladelser), gange( bevare modifikationstider), gruppe( bevare gruppe), ejer( bevare ejer), bevare enhedsfiler og bevare særlige filer.
2. -v = verbose. Grunden til, at jeg tror, ​​er vigtig, er, så du kan se præcis, hvad rsync understøtter. Tænk på dette: Hvad hvis din harddisk går dårligt, og begynder at slette filer uden din viden, så kører du dit rsync script og det skubber disse ændringer til dine sikkerhedskopier og derved sletter alle forekomster af en fil, som du ikke ønskede at fåAf med?
3. -delete = Dette fortæller rsync at slette filer, der er i Directory2, der ikke er i Directory1.Hvis du vælger at bruge denne indstilling, anbefaler jeg også at bruge de verbose muligheder, af ovennævnte grunde.

Brug scriptet ovenfor, her er output genereret ved at bruge rsync til at sikkerhedskopiere Directory1 til Directory2.Bemærk, at uden den verbose switch vil du ikke modtage sådanne detaljerede oplysninger.

rsync2

Skærmbilledet ovenfor fortæller os, at File1.txt og File2.jpg blev registreret som enten at være nye eller på anden måde ændret fra de kopier, der findes i Directory2, og derfor blev de sikkerhedskopieret. Noob tip: Bemærk de efterfølgende skråstreger i slutningen af ​​katalogerne i min rsync kommando - det er nødvendigt, husk at huske dem.

Vi vil gå over et par mere praktiske switches i slutningen af ​​denne tutorial, men husk bare at for at se en komplet liste, kan du skrive "man rsync" og se en komplet liste over kontakter, der skal bruges.

Det dækker det så vidt angår lokale sikkerhedskopier. Som du kan sige, er rsync meget nem at bruge. Det bliver lidt mere komplekst, når du bruger det til at synkronisere data med en ekstern vært over internettet, men vi vil vise dig en enkel, hurtig og sikker måde at gøre.

Brug af rsync til eksterne sikkerhedskopieringer

rsync kan konfigureres på flere forskellige måder til eksterne sikkerhedskopier, men vi vil gå over den mest praktiske( også den nemmeste og sikreste) metode til tunneling rsync gennem SSH.De fleste servere og endda mange kunder har allerede SSH, og det kan bruges til dine rsync-sikkerhedskopier. Vi viser dig processen til at få en Linux-maskine til at sikkerhedskopiere til en anden på et lokalt netværk. Processen ville være den samme, hvis en vært var ude på internettet et sted, bare bemærk at port 22( eller hvilken port du har SSH konfigureret på), skulle skulle videresendes på ethvert netværksudstyr på serverens side af tingene.

På serveren( den computer, der modtager sikkerhedskopierne) skal du sørge for at SSH og rsync er installeret.

# yum -y installer ssh rsync

# sudo apt-get installer ssh rsync

Udover at installere SSH og rsync på serveren, er alt, hvad der virkelig skal gøres, at opsætte lagrene på serveren, hvor du vil have filerne bakket opog sørg for, at SSH er låst ned. Sørg for, at den bruger du planlægger at bruge, har en kompleks adgangskode, og det kan også være en god ide at skifte den port, som SSH lytter til( standard er 22).

Vi kører den samme kommando, som vi gjorde for at bruge rsync på en lokal computer, men indeholder de nødvendige tilføjelser til tunneling rsync via SSH til en server på mit lokale netværk. For brugerens "geek", der forbinder til "192.168.235.137" og bruger de samme kontakter som ovenfor( -av-delete) kører vi følgende:

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

Hvisdu har en SSH-lytte på en anden port end 22, skal du angive portnummeret, som i dette eksempel, hvor jeg bruger port 12345:

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

rsync3

Som du kan se fra skærmbilledet ovenfor, er output, der gives ved sikkerhedskopiering på tværs af netværket, stort set den samme som ved sikkerhedskopiering lokalt, er det eneste, der ændrer, den kommando, du bruger. Bemærk også, at det bad om en adgangskode. Dette er at godkende med SSH.Du kan oprette RSA-nøgler for at springe over denne proces, hvilket også vil forenkle automatiseringen af ​​rsync.

Automatisering af rsync-sikkerhedskopieringer

Cron kan bruges på Linux til at automatisere udførelsen af ​​kommandoer, som f.eks. Rsync. Ved hjælp af Cron kan vi få vores Linux-system til at køre natlige backups, men ofte vil du gerne have dem kørt.

Hvis du vil redigere cron tabelfilen til brugeren, er du logget ind som, kør:

$ crontab -e

Du skal være bekendt med vi for at kunne redigere denne fil. Skriv "I" for indsæt, og begynd derefter at redigere cron tabellen filen.

Cron bruger følgende syntaks: minut af time, time på dagen, månedens måned, årets måned, ugedag, kommando.

Det kan være lidt forvirrende i starten, så lad mig give dig et eksempel. Følgende kommando vil køre rsync kommandoen hver nat kl. 22.00:

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

Den første "0" angiver minutens minut og "22" angiver kl. 22.00.Da vi vil have denne kommando til at køre dagligt, forlader vi resten af ​​felterne med asterisker og indsætter derefter rsync kommandoen.

Når du er færdig med at konfigurere Cron, skal du trykke på escape og derefter skrive ": wq"( uden citaterne) og tryk enter. Dette gemmer dine ændringer i vi.

Cron kan få meget mere dybtgående end dette, men at fortsætte det ville være uden for denne tutorials omfang. De fleste mennesker vil bare have en simpel ugentlig eller daglig backup, og det vi har vist dig, kan nemt nå det. For mere information om Cron, se man pages.

Andre nyttige funktioner

En anden nyttig ting, du kan gøre, er at sætte dine sikkerhedskopier i en zip-fil. Du skal angive, hvor du vil have zip-filen, der skal placeres, og derefter rsync den mappe til din backup-mappe. For eksempel:

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

rsync5

Kommandoen ovenfor tager filerne fra Directory1, sætter dem i /ZippedFiles/ archive.zip og derefter rsyncs, der mapper til Directory2.I starten kan du måske tro, at denne metode ville vise sig ineffektiv til store sikkerhedskopier, da zip-filen vil ændre sig hver gang den mindste ændring foretages til en fil. Rsync overfører dog kun de ændrede data, så hvis din zip-fil er 10 GB, og så tilføjer du en tekstfil til Directory1, vil rsync vide, at det er alt du har tilføjet( selvom det er i en zip) og kun overføre de få kilobytesaf ændrede data.

Der er et par forskellige måder, du kan kryptere dine rsync-sikkerhedskopier. Den nemmeste metode er at installere kryptering på selve harddisken( den, som dine filer bliver sikkerhedskopieret til).En anden måde er at kryptere dine filer, før de sendes til en fjernserver( eller en anden harddisk, uanset hvad du tilfældigvis støtter).Vi dækker disse metoder i senere artikler.

Uanset hvilke muligheder og funktioner du vælger, viser rsync at være et af de mest effektive og alsidige backupværktøjer til dato, og selv et simpelt rsync script kan spare dig for at miste dine data.