Úvodná » ako » Ako používať rsync na zálohovanie údajov v systéme Linux

    Ako používať rsync na zálohovanie údajov v systéme Linux

    rsync je protokol vytvorený pre systémy typu Unix, ktorý poskytuje neuveriteľnú všestrannosť pri zálohovaní a synchronizácii dát. Môže sa použiť lokálne na zálohovanie súborov do rôznych adresárov alebo môže byť nakonfigurovaný tak, aby sa synchronizoval cez internet s inými hostiteľmi.

    Môže byť použitý v systéme Windows, ale je dostupný iba prostredníctvom rôznych portov (napríklad Cygwin), takže v tomto príklade budeme hovoriť o jeho nastavení v systéme Linux. Po prvé, potrebujeme nainštalovať / aktualizovať klienta rsync. V distribuciach Red Hat je príkaz "yum install rsync" a na Debian je "sudo apt-get install rsync".


    Príkaz na server Red Hat / CentOS po prihlásení ako root (všimnite si, že niektoré nedávne distribúcie Red Hat podporujú metódu sudo).


    Príkaz na Debian / Ubuntu.

    Použitie rsync pre lokálne zálohy

    V prvej časti tejto príručky budeme zálohovať súbory z adresára 1 do adresára2. Obe tieto adresáre sú na tom istom pevnom disku, ale toto by fungovalo presne rovnako, keby existovali adresáre na dvoch rôznych diskoch. Existuje niekoľko rôznych spôsobov, ako k tomu môžeme pristupovať, v závislosti od toho, aké zálohy chcete nakonfigurovať. Pre väčšinu účelov bude stačiť nasledujúci riadok kódu:

    $ rsync -av -delete / Adresár1 / / Adresár2 /

    Vyššie uvedený kód bude synchronizovať obsah adresára 1 s adresárom2 a nezanechá žiadne rozdiely medzi týmito dvoma. Ak rsync zistí, že adresár 2 má súbor, ktorý Directory1 nemá, zmaza. Ak rsync nájde súbor, ktorý bol zmenený, vytvorený alebo odstránený v adresári Directory1, bude to odrážať tie isté zmeny v adresári Directory2.

    Existuje veľa rôznych prepínačov, ktoré môžete použiť pre rsync na prispôsobenie podľa vašich špecifických potrieb. Tu je uvedený kód, ktorý rsync hovorí o zálohách:

    1. -a = rekurzívne (vyhľadávanie v adresároch), odkazy (kopírovanie symbolických odkazov ako symbolických odkazov), permi (zachovanie oprávnení), časy (zachovanie časov modifikácie), skupinové (zachovať skupinu), vlastník (zachovať vlastníka) zachovať špeciálne súbory.
    2. -v = verbose. Dôvod, prečo myslím, že verbose je dôležité je, takže môžete vidieť presne to, čo rsync zálohuje. Premýšľajte o tom: Čo sa stane, ak sa váš pevný disk zhorší a začne vymazávať súbory bez vášho vedomia, potom spustite skript rsync a tieto zmeny presuniete do záloh, čím odstránite všetky inštancie súboru, ktorý ste nechceli získať zbaviť sa?
    3. -delete = Toto informuje rsync, že ​​odstráni všetky súbory, ktoré sú v adresári2, ktoré nie sú v Adresári1. Ak sa rozhodnete túto možnosť použiť, odporúčam vám použiť vyššie uvedené možnosti z vyššie uvedených dôvodov.

    Pomocou vyššie uvedeného skriptu je tu výstup generovaný pomocou rsync na zálohovanie adresára 1 do adresára2. Upozorňujeme, že bez podrobného prepínača by ste takéto podrobné informácie nedostali.

    Vyššie uvedený obrázok obrazovky nám hovorí, že súbory File1.txt a File2.jpg boli zistené buď ako nové, alebo inak zmenené z kópií existujúcich v Adresári2, a preto boli zálohované. Tip Noob: Všimnite si, že na konci adresárov v mojom príkaze rsync si všimnite trailing línie - tie sú potrebné, nezabudnite si ich zapamätať.

    Pôjdeme o niekoľko šikovných prepínačov smerom ku koncu tohto tutoriálu, ale len si pamätajte, že aby ste videli úplný záznam, môžete zadať "man rsync" a zobraziť kompletný zoznam prepínačov na použitie.

    To sa týka toho, pokiaľ ide o lokálne zálohy. Ako môžete povedať, rsync je veľmi jednoduché použitie. Keď sa používa na synchronizáciu údajov s externým hostiteľom cez internet, dostane sa o niečo zložitejšie, ale ukážeme vám jednoduchý, rýchly a bezpečný spôsob, ako to urobiť.

    Používanie rsync pre externé zálohy

    rsync môže byť nakonfigurovaný niekoľkými rôznymi spôsobmi pre externé zálohovanie, ale prejdeme na najpraktickejšiu (aj najjednoduchšiu a najbezpečnejšiu) metódu tunelovania rsync cez SSH. Väčšina serverov a dokonca mnoho klientov už má SSH a môže sa použiť na zálohovanie rsync. Ukážeme vám proces, ak chcete, aby jeden počítač Linux bol zálohovaný do inej lokálnej siete. Proces by bol presne ten istý, ak by sa niekde na internete nachádzal jeden hostiteľ, len si všimnite, že port 22 (alebo akýkoľvek port, na ktorom ste nakonfigurovali SSH) by musel byť presmerovaný na akékoľvek sieťové zariadenie na strane servera.

    Na serveri (počítač, ktorý bude zálohovať) sa uistite, že sú nainštalované SSH a rsync.

    # yum -y inštalujem ssh rsync

    # sudo apt-get nainštalujte ssh rsync

    Iné ako inštalácia SSH a rsync na server, všetko, čo naozaj treba urobiť, je nastaviť úložiská na serveri, kde chcete zálohovať súbory, a uistite sa, že SSH je uzamknutá. Uistite sa, že používateľ, ktorého plánujete používať, má zložité heslo a môže byť tiež dobré prepnúť port, ktorý SSH počúva (predvolené je 22).

    Spustíme ten istý príkaz, aký sme použili pri používaní rsync v lokálnom počítači, ale zahŕňali aj potrebné doplnky pre tunelovanie rsync cez SSH na server v lokálnej sieti. Pre užívateľa "geek", ktorý sa pripája na "192.168.235.137" a pomocou rovnakých prepínačov ako vyššie (-av -delete) spustíme nasledovné:

    $ rsync -av -delete -e ssh / Adresár1 / [email protected]: / Directory2 /

    Ak máte počúvanie SSH na niektorom inom porte než 22, bolo by potrebné zadať číslo portu, ako napríklad v tomto príklade, kde používam port 12345:

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

    Ako môžete vidieť z vyššie uvedenej snímky obrazovky, výstup, ktorý ste zadali pri zálohovaní po sieti, je skoro rovnaký ako pri lokálnom zálohovaní, jediná vec, ktorá sa zmení, je príkaz, ktorý používate. Všimnite si tiež, že sa zobrazí výzva na zadanie hesla. Toto je overovanie s SSH. Môžete nastaviť klávesy RSA na preskočenie tohto procesu, čo tiež zjednoduší automatizáciu rsync.

    Automatizácia záloh rsync

    Cron môže byť použitý v systéme Linux na automatizáciu vykonávania príkazov, ako je rsync. Pomocou programu Cron môžeme mať náš systém Linux spustiť nočné zálohovanie, alebo hoci často chcete, aby sa spustil.

    Ak chcete upraviť súbor tabuľky cron pre používateľa, ktorého ste prihlásený / -á, spustite:

    $ crontab -e

    Pre editáciu tohto súboru budete potrebovať poznať vi. Zadajte "I" pre vloženie a potom začnite upravovať súbor tabuľky cron.

    Cron používa nasledujúcu syntax: minútová hodina, hodina dňa, deň v mesiaci, mesiac v roku, deň v týždni, príkaz.

    Môže to byť trochu nejasné, preto vám dám príklad. Nasledujúci príkaz spustí príkaz rsync každú noc o 22:00:

    0 22 * ​​* * rsync -av --delete / Adresár1 / / Adresár2 /

    Prvý znak "0" určuje minútu hodiny a "22" udáva 10 PM. Keďže chceme, aby tento príkaz bežal denne, ponecháme ostatné polia s hviezdičkami a potom vložte príkaz rsync.

    Po dokončení konfigurácie aplikácie Cron stlačte kláves Escape a zadajte príkaz ": wq" (bez úvodzoviek) a stlačte kláves enter. Tým sa vaše zmeny uložia do vi.

    Cron môže dostať oveľa viac do hĺbky ako to, ale pokračovať by to bolo mimo rozsah tohto tutoriálu. Väčšina ľudí bude chcieť jednoduchú týždennú alebo dennú zálohu a to, čo sme ukázali, môžete ľahko dosiahnuť to. Viac informácií o spoločnosti Cron nájdete v manuálových stránkach.

    Ďalšie užitočné funkcie

    Ďalšou užitočnou vecou, ​​ktorú môžete urobiť, je uloženie záloh do zip súboru. Budete musieť určiť, kam by ste chceli umiestniť súbor zip a potom rsync tento adresár do záložného adresára. Napríklad:

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

    Príkaz uvedený vyššie preberá súbory z adresára 1, umiestni ich do /Zipfiles/archive.zip a potom rsyncs tento adresár do adresára2. Spočiatku si možno myslíte, že táto metóda sa ukáže ako neúčinná pri veľkých zálohách, pretože zip sa zmení vždy, keď sa zmení najmenšia zmena súboru. Rsync však prenáša iba zmenené údaje, takže ak je váš súbor zip 10 GB a potom pridáte textový súbor do adresára 1, rsync bude vedieť, že všetko, čo ste pridali (aj keď je to v zip), a prenášať len niekoľko kilobajtov zmenených údajov.

    Existuje niekoľko rôznych spôsobov, ako môžete šifrovať rsync zálohy. Najjednoduchším spôsobom je inštalácia šifrovania na samotný pevný disk (ten, s ktorým sú zálohované súbory). Ďalšou možnosťou je zašifrovanie súborov pred ich odoslaním na vzdialený server (alebo na iný pevný disk, bez ohľadu na to, s akou zálohujete). Tieto metódy pokryjeme v neskorších článkoch.

    Bez ohľadu na možnosti a funkcie, ktoré si vyberiete, rsync sa ukáže byť jedným z najefektívnejších a najuniverzálnejších nástrojov zálohovania, a dokonca aj jednoduchý skript rsync vám môže ušetriť straty vašich dát.