Kako uporabljati rsync za varnostno kopiranje podatkov na Linuxu
rsync je protokol, zgrajen za sisteme, podobne Unixu, ki zagotavlja neverjetno vsestranskost za varnostno kopiranje in sinhronizacijo podatkov. Lahko se uporablja lokalno za varnostno kopiranje datotek v različne imenike ali pa se lahko konfigurira za sinhronizacijo preko interneta z drugimi gostitelji.
Uporablja se lahko v sistemih Windows, vendar je na voljo le prek različnih vrat (kot je Cygwin), zato bomo v tem navodilu govorili o nastavitvi na Linuxu. Najprej moramo namestiti / posodobiti odjemalca rsync. Na distribucijah Red Hat je ukaz »yum install rsync«, v Debianu pa »sudo apt-get install rsync«.
Ukaz na Red Hat / CentOS, po prijavi kot root (upoštevajte, da nekatere nove distribucije Red Hata podpirajo metodo sudo).
Ukaz na Debian / Ubuntu.
Uporaba rsync za lokalne varnostne kopije
V prvem delu te vadnice bomo varnostno kopirali datoteke iz Directory1 v Directory2. Oba imenika sta na istem trdem disku, vendar bi to delovalo popolnoma enako, če bi imeli imeniki na dveh različnih pogonih. Obstaja več različnih načinov, do katerih lahko pristopimo, odvisno od vrste varnostnih kopij, ki jih želite konfigurirati. Za večino namenov zadostuje naslednja vrstica kode:
$ rsync -av --delete / Directory1 / / Directory2 /
Zgornja koda bo sinhronizirala vsebino imenika Directory1 z imenikom Directory2 in med njima ne bo razlik. Če rsync ugotovi, da ima Directory2 datoteko, ki je Directory1 ne, jo bo izbrisala. Če rsync najde datoteko, ki je bila spremenjena, ustvarjena ali izbrisana v imeniku1, bo odražala te iste spremembe v imeniku Directory2.
Obstaja veliko različnih stikal, ki jih lahko uporabite za rsync, da jih prilagodite vašim posebnim potrebam. Tukaj je navedeno, kaj prej omenjena koda pove rsync s varnostnimi kopijami:
1. -a = rekurzivno (recurse v imenike), povezave (kopiranje simboličnih povezav), perms (ohraniti dovoljenja), čas (ohraniti čas spremembe), skupina (ohraniti skupino), lastnik (ohraniti lastnika), ohraniti datoteke naprav in shranite posebne datoteke.
2. -v = verbose. Razlog, zakaj mislim, da je verbose je pomembno je, da boste lahko videli, kaj točno rsync je varnostno kopiranje. Razmislite o tem: Kaj, če se vaš trdi disk pokvari in začne brisati datoteke brez vaše vednosti, potem zaženete skript rsync in te spremembe premakne v varnostne kopije in tako izbrišejo vse primerke datoteke, ki je niste želeli dobiti. znebiti se?
3. -delete = To pove rsync, da izbriše vse datoteke, ki so v imeniku2, ki niso v imeniku1. Če se odločite za uporabo te možnosti, priporočam tudi, da uporabite obširne možnosti iz zgoraj navedenih razlogov.
Z uporabo zgornjega skripta je tukaj rezultat, ki ga ustvarite z uporabo rsync za varnostno kopiranje Directory1 v Directory2. Upoštevajte, da brez podrobnega stikala ne boste prejeli takšnih podrobnih informacij.
Zgornji posnetek nam pove, da sta bila File1.txt in File2.jpg zaznana kot nova ali drugače spremenjena od obstoječih kopij v imeniku Directory2, zato sta bila varnostno kopirana. Nasvet Noob: Opazite, da so zaključne poševnice na koncu imenika v mojem ukaza rsync - potrebne, se jih morate spomniti.
Šli bomo čez nekaj priročnih stikal proti koncu te vadnice, vendar ne pozabite, da si lahko ogledate celoten seznam, vtipkajte »man rsync« in si oglejte celoten seznam stikal za uporabo.
To se nanaša na lokalno varnostno kopiranje. Kot lahko ugotovite, je rsync zelo enostaven za uporabo. Ko ga uporabljate za sinhronizacijo podatkov z zunanjim gostiteljem prek interneta, postane nekoliko bolj zapletena, vendar vam bomo pokazali preprost, hiter in varen način za to.
Uporaba rsync za zunanje varnostne kopije
rsync je mogoče konfigurirati na več različnih načinov za zunanje varnostne kopije, vendar bomo uporabili najbolj praktično (tudi najpreprostejšo in najbolj varno) metodo tuneliranja rsync prek SSH. Večina strežnikov in celo veliko odjemalcev že ima SSH in se lahko uporablja za varnostne kopije rsync. Pokazali vam bomo postopek, s katerim naj bi stroj Linux ustvaril varnostno kopijo v drugem omrežju. Postopek bi bil popolnoma enak, če bi bil nek gostitelj nekje na internetu, samo zapomnite si, da bi bilo treba vrata 22 (ali katera koli vrata, na katera ste konfigurirali SSH) posredovati na kateri koli omrežni opremi na strani strežnika..
Na strežniku (računalnik, ki bo prejemal varnostne kopije), se prepričajte, da so nameščeni SSH in rsync.
# yum -y namestite ssh rsync
# sudo apt-get namestite ssh rsync
Razen namestitve SSH in rsync na strežnik, vse, kar je treba storiti, je, da nastavite shrambe na strežniku, kjer želite datoteke varnostno kopirati, in se prepričajte, da je SSH zaklenjen. Prepričajte se, da ima uporabnik, ki ga nameravate uporabljati, zapleteno geslo, prav tako pa bi bilo dobro zamenjati vrata, na katerih posluša SSH (privzeto je 22)..
Izvedli bomo isti ukaz, kot smo ga uporabili za uporabo rsync na lokalnem računalniku, vendar vključujemo potrebne dodatke za tuneliranje rsync prek SSH na strežnik v lokalnem omrežju. Za uporabnika »geek«, ki se povezuje s »192.168.235.137« in uporablja ista stikala kot zgoraj (-av -delete), bomo izvedli naslednje:
$ rsync -av -brisanje -e ssh / Directory1 / [email protected]: / Imenik2 /
Če imate SSH poslušanje na nekaterih vratih, ki niso 22, morate podati številko vrat, kot je v tem primeru, kjer uporabljam vrata 12345:
$ rsync -av -delete -e 'ssh -p 12345' / Imenik1 / [email protected]: / Directory2 /
Kot lahko vidite na zgornji sliki zaslona, je izhod, ki ste ga dobili pri varnostnem kopiranju po omrežju, skoraj enak kot pri lokalnem varnostnem kopiranju, edina stvar, ki se spremeni, je ukaz, ki ga uporabljate. Upoštevajte tudi, da ste pozvali geslo. To je avtentikacija s SSH. Nastavite lahko ključe RSA, da preskočite ta proces, kar bo tudi poenostavilo avtomatizacijo rsync.
Avtomatiziranje varnostnih kopij rsync
Cron lahko uporabite na Linuxu za avtomatizacijo izvajanja ukazov, kot je rsync. Z uporabo Cron-a lahko naš sistem Linux zažene nočne varnostne kopije ali pa jih pogosto želite zagnati.
Če želite urediti datoteko cron tabele za uporabnika, s katerim ste prijavljeni, zaženite:
$ crontab -e
Za urejanje te datoteke morate poznati vi. Vnesite »I«, nato pa začnite urejati datoteko cron tabele.
Cron uporablja naslednjo sintakso: minuto ure, uro dneva, dan meseca, mesec v letu, dan v tednu, ukaz.
Na začetku je lahko malo zmedeno, zato naj vam dam primer. Naslednji ukaz bo zagnal ukaz rsync vsako noč ob 10. uri:
0 22 * * * rsync -av - obriši / Imenik1 / / Imenik2 /
Prva »0« določa minuto ure in »22« določa 10 ur. Ker želimo, da se ta ukaz izvaja vsak dan, bomo preostala polja pustili z zvezdicami in nato prilepili ukaz rsync.
Ko ste končali s konfiguriranjem Cron, pritisnite tipko za izhod, nato pa vnesite »: wq« (brez narekovajev) in pritisnite enter. Tako boste shranili spremembe v vi.
Cron lahko dobi veliko bolj poglobljeno, kot je to, toda za to bi šlo izven obsega te vadnice. Večina ljudi si bo želela preprosto tedensko ali dnevno varnostno kopiranje in to, kar smo pokazali, lahko to enostavno dosežete. Za več informacij o Cronu si oglejte strani man.
Druge uporabne funkcije
Še ena koristna stvar, ki jo lahko naredite, je, da shranite varnostne kopije v datoteko zip. Določiti morate, kam naj se postavi datoteka zip, in nato rsync ta imenik v imenik za varnostno kopiranje. Na primer:
$ zip /ZippedFiles/archive.zip / Directory1 / && rsync -av --izbrisi / ZippedFiles / / Directory2 /
Zgornji ukaz vzame datoteke iz Directory1, jih postavi v /ZippedFiles/archive.zip in nato rsyncs ta imenik v Directory2. Sprva se vam zdi, da bi se ta metoda izkazala za neučinkovito pri velikih varnostnih kopijah, saj se bo zip datoteka spremenila vsakič, ko se bo datoteka spremenila. Vendar pa rsync prenese samo spremenjene podatke, tako da, če je vaša datoteka zip 10 GB, in nato dodate datoteko z besedilom v Directory1, bo rsync vedel, da je vse, kar ste dodali (čeprav je v zipu) in prenesli le nekaj kilobajtov spremenjenih podatkov.
Varnostne kopije rsync lahko šifrirate na več različnih načinov. Najlažji način je, da namestite šifriranje na sam trdi disk (tistega, na katerega se varnostno kopirajo vaše datoteke). Drug način je šifriranje datotek, preden jih pošljete oddaljenemu strežniku (ali drugemu trdemu disku, ne glede na to, do česar ste podprli). Te metode bomo obravnavali v poznejših člankih.
Ne glede na možnosti in funkcije, ki jih izberete, se rsync izkaže za eno najbolj učinkovitih in vsestranskih orodij za varnostno kopiranje do sedaj, in celo preprost skript rsync vas lahko prihrani pred izgubo podatkov.