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

Obsah:

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

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

Video: Ako používať rsync na zálohovanie údajov v systéme Linux
Video: How-to | Protecting Your Data with Cloud Backup - YouTube 2024, Apríl
Anonim
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 byť použitý lokálne na zálohovanie súborov do rôznych adresárov alebo môže byť nakonfigurovaný na synchronizáciu cez internet s inými hostiteľmi.
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 byť použitý lokálne na zálohovanie súborov do rôznych adresárov alebo môže byť nakonfigurovaný na synchronizáciu cez internet s inými hostiteľmi.

Môže byť použitý v systéme Windows, ale je k dispozícii 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 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.
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 rovnakom 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 typu záloh, ktoré chcete nakonfigurovať. Pre väčšinu účelov bude stačiť nasledujúci riadok kódu:

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

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ý nie je adresárom, odstráni ho. Ak rsync nájde súbor, ktorý bol zmenený, vytvorený alebo odstránený v Adresári1, bude to odrážať tie isté zmeny v Adresári2.

Existuje veľa rôznych prepínačov, ktoré môžete použiť pre rsync a prispôsobiť ju vašim špecifickým potrebám. 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 rsync skript a tlačia tieto zmeny 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ý použitím rsync na zálohovanie adresára 1 do adresára2. Berte na vedomie, že bez podrobného prepínača by ste neobdržali také podrobné informácie.

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ť.
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 pre zobrazenie úplného záznamu môžete napísať "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žitie 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 dá 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. Tento 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 prijímať zálohy) skontrolujte, či sú nainštalované SSH a rsync.

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

Okrem inštalácie SSH a rsync na server, všetko, čo je naozaj potrebné urobiť, je nastaviť úložiská na serveri, kde by ste chceli 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 na lokálnom počítači, ale zahŕňali potrebné dodatky pre tunelovanie rsync cez SSH na server v mojej lokálnej sieti. Pre užívateľa "geek", ktorý sa pripája k "192.168.235.137" a pomocou tých istých prepínačov ako vyššie (-av -delete) spustíme nasledovné:

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

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

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

Ako môžete vidieť z vyššie uvedenej obrazovky, výstup uvedený pri zálohovaní po sieti je skoro rovnaký ako pri zálohovaní lokálne, jediná vec, ktorá sa zmení, je príkaz, ktorý používate. Všimnite si tiež, že sa zobrazí výzva na zadanie hesla.To sa týka autentifikácie pomocou SSH. Môžete nastaviť klávesy RSA na preskočenie tohto procesu, čo tiež zjednoduší automatizáciu rsync.
Ako môžete vidieť z vyššie uvedenej obrazovky, výstup uvedený pri zálohovaní po sieti je skoro rovnaký ako pri zálohovaní lokálne, jediná vec, ktorá sa zmení, je príkaz, ktorý používate. Všimnite si tiež, že sa zobrazí výzva na zadanie hesla.To sa týka autentifikácie pomocou 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 Cronu môžeme mať náš systém Linux spustiť nočné zálohovanie, alebo často by ste chceli, 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úta hodiny, hodina dňa, deň v mesiaci, mesiac roka, 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 /Directory1/ /Directory2/

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 Crona stlačte kláves Escape a zadajte ": 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, ale pokračovať by to bolo mimo rozsahu tohto tutoriálu. Väčšina ľudí bude chcieť len jednoduchú týždennú alebo dennú zálohu a čo sme ukázali, môžete to ľahko dosiahnuť. 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 chcete umiestniť súbor zip a potom rsync tento adresár do záložného adresára. Napríklad:

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

Príkaz uvedený vyššie preberá súbory z adresára 1, umiestni ich do priečinka /ZippedFiles/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 súbor sa zmení vždy, keď sa urobí najmenšia zmena súboru. Rsync však iba prenesie 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.
Príkaz uvedený vyššie preberá súbory z adresára 1, umiestni ich do priečinka /ZippedFiles/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 súbor sa zmení vždy, keď sa urobí najmenšia zmena súboru. Rsync však iba prenesie 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ť svoje zálohy rsync. Najjednoduchšou metódou 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 iný pevný disk, bez ohľadu na to, čo sa stalo zálohovaním). Tieto metódy pokryjeme v neskorších článkoch.

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

Odporúča: