27Jun
rsync je protokol vytvorený pre systémy typu Unix, ktoré poskytujú 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ý na synchronizáciu cez internet s inými hostiteľmi.
Môže byť použitý v systéme Windows, ale je dostupný len prostredníctvom rôznych portov( napríklad Cygwin), takže v tomto prípade budeme hovoriť o jeho nastavení v systéme Linux. Po prvé, potrebujeme nainštalovať / aktualizovať klienta rsync. Na distribuci Red Hat je príkaz "yum install rsync" a na Debian je "sudo apt-get install rsync".
Príkaz na Red Hat / CentOS po prihlásení ako root( všimnite si, že niektoré nedávne distribúcie Red Hatpodporovať 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 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 to, čo vyššie uvedený kód hovorí rsync robiť so zálohami:
1. -a = rekurzívne( recurse do adresárov), odkazy( kopírovať symbolické odkazy ako symbolické odkazy), perms( zachovať oprávnenia), časy( zachovať časy modifikácie)zachovať skupinu), vlastník( zachovať vlastníka), zachovať súbory zariadenia a zachovať špeciálne súbory.
2. -v = verbose. Dôvod, prečo myslím, že verbose je dôležité, je tak, aby ste mohli 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ý pomocou 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 uvádza, ž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 asi pokrýva to 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álohovanie
rsync môže byť nakonfigurovaný niekoľkými rôznymi spôsobmi pre externé zálohovanie, ale my 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) sa uistite, že sú nainštalované SSH a rsync.
# yum -y nainštalujem ssh rsync
# sudo apt-get inštalovať ssh rsync
Iné ako inštaláciu SSH a rsync na server, všetko, čo naozaj treba urobiť, je nastaviť repozitáre na serveri, kde by ste chcel zálohované súborya overte, či je SSH 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 rovnaký príkaz, aký sme použili pri používaní rsync na 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ľov "geek", ktorý sa pripája k "192.168.235.137" a používajú rovnaké prepínače ako vyššie( -av -delete), spustíme nasledovné:
$ rsync -av -delete -e ssh /Directory1/ [email protected]: /Directory2/
máte SSH počúvať na niektorom 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 vidíte na snímke vyššie, výstup, ktorý je daný pri zálohovaní po sieti, je takmer 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 Linuxe na automatizáciu vykonávania príkazov, ako 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 užívateľa, do ktorého ste prihlásený, spustite:
$ crontab -e
Aby ste tento súbor upravili, 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.
Na začiatku to môže byť trochu nejasné, a 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ý "0" určuje minútu hodiny a "22" určuje 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 enter. Tým sa vaše zmeny uložia do vi.
Cron môže dostať oveľa viac do hĺbky, ale pokračovať asi by to bolo mimo rozsah 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 vloženie záloh do súboru zip. 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/ archiv.zip /Directory1/ &rsync -av --delete /ZippedFiles/ /Directory2/
Príkaz uvedený vyššie preberá súbory z adresára 1, umiestni ich do archiv.zip /ZippedFiles/ a potom rsyncs tento adresár do priečinka Directory2.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 je všetko, čo ste pridali( aj keď je to v zip) a prenášať len niekoľko kilobajtovzmenených údajov.
Existuje niekoľko rôznych spôsobov, ako môžete šifrovať rsync zálohy. 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 dát.