27Jun

Kako uporabljati rsync za varnostno kopiranje podatkov v Linuxu

click fraud protection

banner

rsync je protokol, izdelan za Unix podobne sisteme, ki zagotavljajo neverjetno vsestranskost za varnostno kopiranje in sinhronizacijo podatkov. Uporabite ga lahko lokalno, da varnostno kopirate datoteke v različne imenike ali jih lahko konfigurirate za sinhronizacijo prek interneta z drugimi gostitelji.

Uporablja se lahko v sistemih Windows, vendar je na voljo le prek različnih pristanišč( kot je Cygwin), zato bomo v tem primeru govorili o nastavitvi na Linuxu. Najprej moramo namestiti / posodobiti odjemalca rsync. Na distribucijah Red Hat je ukaz yum install rsync, na Debian pa je "sudo apt-get install rsync."

rsync1
Ukaz na Red Hat / CentOS, ko se prijavite kot root( upoštevajte, da nekatere nedavne distribucije Red Hatpodpreti metodo sudo).

rsync4
Ukaz na Debian / Ubuntu.

Uporaba rsync za lokalne varnostne kopije

V prvem delu tega tutorialja 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, na katere lahko pristopimo, odvisno od vrste varnostnih kopij, ki jih želite konfigurirati. Za večino namenov zadostuje naslednja vrstica kode:

instagram viewer

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

Zgornja koda sinhronizira vsebino Directory1 z Directory2 in ne pusti nobenih razlik med obema.Če rsync ugotovi, da ima Directory2 datoteko, ki jo Directory1 ne, jo izbriše.Če rsync najde datoteko, ki je bila spremenjena, ustvarjena ali izbrisana v Directory1, bo odražala iste spremembe v imeniku2.

Obstaja veliko različnih stikal, ki jih lahko uporabite za rsync, da jih prilagodite specifičnim potrebam. Tukaj je tisto, kar zgoraj omenjena koda pove rsync do varnostnih kopij:

1. -a = rekurzivno( ponovitev v imenike), povezave( kopiraj simbolov kot simbolov), perm( ohranite dovoljenja), krat( ohranite čas spremembe), skupinoohranite skupino), lastnik( shranite lastnika), shranite datoteke naprave in shranite posebne datoteke.
2. -v = verbose. Razlog, da mislim, da je verbose pomemben, je, da lahko natančno vidite, kaj podpira rsync. Razmislite o tem: Kaj, če vaš trdi disk gre slabo in začne brisanje datotek brez vašega znanja, nato pa zaženete svoj rsync skript in jih potiska v svoje varnostne kopije, s čimer izbrišete vse primere datoteke, ki je niste želeli dobitiznebiti 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, vam priporočam tudi uporabo možnosti verbose iz razlogov, navedenih zgoraj.

S pomočjo zgornjega skripta, tukaj je izhod, ustvarjen z uporabo rsync za varnostno kopiranje Directory1 to Directory2.Upoštevajte, da brez preklopnega stikala teh podrobnih podatkov ne boste prejeli.

rsync2

Skica zgoraj nam pove, da sta bili File1.txt in File2.jpg zaznani kot novi ali kako drugače spremenjeni iz kopij, ki so v imeniku Directory2, in so bili varnostno kopirani. Nasvet Noob: v ukazu rsync opazujte zadnje poševnice na koncu imenikov - tiste, ki so potrebne, se jih spomnite.

Preverili bomo še nekaj priročnih stikal na koncu tega vaja, vendar samo zapomnite si, da lahko za celoten seznam vnesete »man rsync« in si ogledate popoln seznam stikal, ki jih želite uporabljati.

To pokriva, kar zadeva lokalne varnostne kopije. Kot lahko rečete, rsync je zelo enostaven za uporabo. Ko ga uporabljate za sinhronizacijo podatkov z zunanjim gostiteljem preko interneta, je nekoliko bolj zapleteno, vendar vam bomo pokazali preprost, hiter in varen način za to.

Uporaba rsync za zunanje varnostne kopije

rsync lahko konfiguriramo na več različnih načinov za zunanje varnostne kopije, vendar bomo prešli na najbolj praktično( tudi najlažjo in najbolj varno) metodo tunneliranja rsync prek SSH.Večina strežnikov in celo veliko strank že ima SSH in se lahko uporablja za varnostne kopije rsync. Pokazali vam bomo postopek, s katerim bi dobili en stroj Linux za varnostno kopiranje drugega v lokalnem omrežju. Postopek bi bil popolnoma enak, če bi bil eden gostitelj nekje na internetu, samo upoštevajte, da bi morali vrata 22( ali katero koli pristanišče, na katerega imate konfigurirano SSH) posredovati katero koli omrežno opremo na strani strežnika.

Na strežniku( računalniku, ki bo prejemal varnostne kopije) zagotovite, da sta SSH in rsync nameščena.

# yum -y namestite ssh rsync

# sudo apt-get namestite ssh rsync

Razen namestitve SSH in rsync na strežnik, vse, kar je res treba storiti, je nastavitev repozitorijev na strežniku, kamor želite, da so datoteke podprtein se prepričajte, da je SSH zaklenjen. Poskrbite, da uporabnik, ki ga nameravate uporabiti, vsebuje zapleteno geslo, morda pa je tudi dobra zamisel, da preklopite vrata, ki jih SSH posluša( privzeto je 22).

Izvajali bomo isti ukaz, ki smo ga naredili za uporabo rsync na lokalnem računalniku, vendar dodamo potrebne dodatke za tunneling rsync preko SSH na strežnik v mojem lokalnem omrežju. Za uporabniško "geek" povezavo na "192.168.235.137" in z uporabo istih stikal kot zgoraj( -av -delete) bomo izvedli naslednje:

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

Čeče imate SSH poslušanje v nekem pristanišču, ki ni 22, morate določiti številko vrat, na primer v tem primeru, kjer uporabljam vrata 12345:

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

rsync3

Kot je razvidno iz zgornjega zaslona, ​​je izpis, ki je podan pri varnostnem kopiranju v omrežju, precej enak kot pri lokalni podpori, edina stvar, ki se spremeni, je ukaz, ki ga uporabljate. Obvestilo tudi, da je zahtevalo geslo. To se potrdi s SSH.Če želite preskočiti ta postopek, lahko nastavite tipke RSA, kar bo tudi poenostavilo avtomatizacijo rsync.

Avtomatiziranje varnostnih kopij rsync

Cron se lahko uporablja v Linuxu za avtomatiziranje izvajanja ukazov, na primer rsync. Z uporabo programa Cron lahko naš sistem Linux zažene nočne varnostne kopije ali pa pogosto želite, da tečejo.

Če želite urediti datoteko tabele cron za uporabnika, v katerega ste prijavljeni, zaženite:

$ crontab -e

Za urejanje te datoteke morate biti seznanjeni z vi. Vnesite »I« za vstavljanje in nato začnite urejati datoteko tabele cron.

Cron uporablja naslednjo sintakso: minuto uro, uro dneva, dan v mesecu, mesec v letu, dan v tednu, ukaz.

Najprej je malo zmedeno, zato naj vam dam primer. Naslednji ukaz bo zagnati ukaz rsync vsako noč ob 22 uri:

0 22 * ​​* * rsync -av -delete /Directory1/ /Directory2/

Prvi "0" določa minuto uro in "22" določa 10 ure. Ker želimo, da se ta ukaz izvaja dnevno, bomo preostale polja zapustili z zvezdico in nato prilepili ukaz rsync.

Ko končate konfiguriranje Cron-a, pritisnite tipko za izhod v sili in vnesite »: wq«( brez narekovajev) in pritisnite enter. S tem boste shranili spremembe v vi.

Cron lahko dobi veliko bolj poglobljeno od tega, vendar, da bi nadaljeval, bi bilo izven obsega tega vaja. Večina ljudi bo preprosto želela preprosto tedensko ali dnevno varnostno kopiranje, in kar smo vam pokazali, lahko to preprosto dosežete.Če želite več informacij o Cron-u, si oglejte strani človeka.

Druge uporabne funkcije

Druga koristna stvar, ki jo lahko storite, je, da vaše varnostne kopije v datoteko zip. Določiti morate, kje želite namestiti zip datoteko, nato pa z njim prenesite ta imenik v svoj rezervni imenik. Na primer:

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

rsync5

Zgornji ukaz zajema datoteke iz imenika Directory1, jih postavlja v /ZippedFiles/ archive.zip in nato preusmeri ta imenik v imenik2.Sprva lahko mislite, da bi se ta metoda izkazala za neučinkovito za velike varnostne kopije, saj se bo datoteka zip spremenila vsakič, ko se najmanjša sprememba izvede v datoteki. Vendar pa rsync prenese samo spremenjene podatke, tako da če je vaša zip datoteka 10 GB, in potem v Directory1 dodate besedilno datoteko, bo rsync vedel, da je vse, kar ste dodali( čeprav je v zipu) in prenese le nekaj kilobajtovspremenjenih podatkov.

Obstajata dva načina za šifriranje varnostnih kopij rsync. Najpreprostejši način je namestiti šifriranje na samem trdem disku( tistemu, na katerega se varnostno kopirajo datoteke).Še en način je šifriranje datotek, preden jih pošljete na oddaljeni strežnik( ali drug trdi disk, karkoli že imate varnostno kopiranje).Te metode bomo pokrili v kasnejših člankah.

Ne glede na možnosti in funkcije, ki jih izberete, je rsync eno od najučinkovitejših in najsodobnejših orodij za varnostno kopiranje do zdaj, celo lahko preprosto rsync skript shranite, da izgubite podatke.