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

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

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


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


    Kommandoen på Debian / Ubuntu.

    Brug rsync til lokale sikkerhedskopier

    I den første del af denne tutorial 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 kodeks tilstrækkelig:

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

    Koden ovenfor synkroniserer indholdet af Directory1 til Directory2 og giver ingen forskelle 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 den førnævnte kode fortæller rsync at gøre med sikkerhedskopierne:

    1. -a = rekursiv (rekursiver i mapper), links (kopier 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.

    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 handy 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 til brug.

    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 det på.

    Brug af rsync til eksterne sikkerhedskopier

    rsync kan konfigureres på flere forskellige måder til eksterne sikkerhedskopier, men vi vil gå over den mest praktiske (også den nemmeste og mest sikre) 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-du installerer 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 sikkerhedskopieret, og 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 porten, som SSH lytter til (standard er 22).

    Vi vil køre den samme kommando, som vi gjorde for at bruge rsync på en lokal computer, men med 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 /

    Hvis du har en SSH-lytte på en anden port end 22, skal du angive portnummeret, f.eks. I dette eksempel, hvor jeg bruger port 12345:

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

    Som du kan se fra skærmbilledet ovenfor, er produktionen, der gives ved sikkerhedskopiering på tværs af netværket, stort set det 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 opsætte RSA-nøgler for at springe over denne proces, hvilket også vil forenkle automatiseringen af ​​rsync.

    Automatisering af rsync-sikkerhedskopier

    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, eller ofte vil du gerne have dem kørende.

    For at redigere cron-tabelfilen for 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 10 PM. 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 trykke 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 anvendelsesområde. 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 venligst manens sider.

    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 /

    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 alt det er tilføjet (selv om det er i en zip) og kun overføre de få kilobytes af æ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 endda et simpelt rsync script kan spare dig for at miste dine data.