Ve světě IT je důležité uchovat si kopii svých dat, abyste je mohli použít v případě potřeby v případě selhání disku nebo při náhodném odstranění. Proto je pravidelné zálohování na konci dne dobrým zvykem odpovědného uživatele počítače.
Příkaz „rsync“ se běžně používá ke kopírování velkých dat. Příkaz ‚cp‘ se však také používá při kopírování malého počtu adresářů a souborů na místním počítači.
V tomto článku se naučíme, jak můžeme zálohovat soubory a složky v Debianu 10.
Předpoklad
Aby tento tutoriál fungoval, musíte mít následující.
1. Dva počítače Debian 10 s právy root
Zálohujte adresáře pomocí příkazu cp
První příkaz, o kterém budeme diskutovat, je „cp“. Používá se ke kopírování malého počtu souborů a složek na místním počítači. Proto se v průmyslu prakticky nepoužívá.
Syntaxe příkazu „cp“ je následující.
cp -option1 -option2 zdrojový cíl
Pro pochopení zkopírujeme soubory z Desktop/log do Karim/logrot. Spusťte na terminálu následující příkaz.
cp -avr Desktop/log Karim/logro
a:Používá se k zachování atributů adresáře, jako je režim souboru, vlastnictví, časová razítka atd.
r:Používá se k rekurzivnímu kopírování adresářů, které jsou v hlavním adresáři
v:Používá se k podrobnému popisu výstupu
Následuje ukázkový výstup.
Pokud chcete zkopírovat všechny soubory, adresáře a podadresáře do jiného adresáře, můžete použít zástupný znak *. Například následující příkaz zkopíruje všechna data z existujícího adresáře Desktop/log/ do Karim/logro/.
cp -avr Desktop/log/* Karim/logro/
Následuje ukázkový výstup.
Zálohujte adresáře pomocí rysnc
Jak jsme již řekli, nejpoužívanějším příkazem k zálohování souborů a složek je „rsync“. Pojďme si proto probrat, co to je a jak se používá.
Co je rysnc?
Rsync znamená vzdálenou synchronizaci a napsali jej Andrew Tridgell a Paul Mackerras 19. června 1996. Je to účinný příkaz pro synchronizaci souborů a přenos mezi místními a síťovými počítači. Ve výchozím nastavení je k dispozici na většině systémů. Můžete jej však nainstalovat pomocí následujících jednoduchých příkazů, pokud není k dispozici (Spouštějte příkazy s právy root).
apt-get update
apt-get install rsync
Před synchronizací dat také musíte mít na obou síťových počítačích nainstalovaného ssh klienta a server. Spusťte následující příkazy s právy root na obou počítačích Debian 1o.
apt-get install ssh
Zálohujte adresáře na místním počítači
Základní syntaxe při synchronizaci souborů na místním počítači je následující.
volba rsync zdrojový-adresář cílový-adresář
Pokud chcete zachovat metadata, jako je vlastnictví, oprávnění, datum vytvoření atd. Musíte použít volbu -a. Pokud chcete rekurzivně kopírovat adresáře uvnitř adresáře, musíte použít volbu -r.
rsync -ar sourcedirectory cílový adresář
Podobně, pokud chcete vidět průběh během synchronizace, použijte volbu -v. Příkazy by měly vypadat následovně,
rsync -avr zdrojový adresář cílový adresář
Předpokládejme, že chceme synchronizovat soubory a složky umístěné na Desktop/log do Karim/logro, příkaz by měl vypadat následovně.
rsync -avr Desktop/log Karim/logro
Následuje ukázkový výstup.
Proberme ještě jeden příklad a řekněme, že máme složku data-1 umístěnou na pevném disku 1 (/media/hdd1/data-1) a chcete ji synchronizovat s druhým pevným diskem na /media/hdd2/. Úplný příkaz by měl vypadat následovně.
rsync -avr /media/hdd1/data-1 /media/hdd2/
Po provedení příkazu vytvoří adresář data-1 na druhém pevném disku a zkopíruje veškerý obsah do cílové cesty /media/hdd2/.
Zálohujte soubory a adresáře přes síť
Při přenosu dat po síti se syntaxe mírně liší. Když chcete synchronizovat místní adresář se vzdáleným adresářem, příkaz by měl vypadat následovně.
rsync [-options] PathofSourceFolder [chráněno e-mailem]:PathofDestinationFolder
Předpokládejme, že mám testovací složku umístěnou v místním počítači v /home/karim/testfolder a chci ji synchronizovat v /home/karim. Vzdálený uživatel je „karim“ a IP adresa stroje je 10.1.1.2. Spusťte na terminálu následující příkaz.
rsync -avr /home/karim/testfolder [email protected]:/home/karim/
Jakmile tento příkaz provedete, budete požádáni o zadání hesla vzdáleného počítače.
Níže je ukázkový výstup po synchronizaci adresáře.
Když chcete synchronizovat vzdálený adresář s místním adresářem, příkaz by měl vypadat následovně.
rsync [-options] [chráněno e-mailem]:PathofSourceFolder PathofDestinationFolder
Předpokládejme, že máme vzdálenou složku „testfolder“ umístěnou v /home/karim/ a chci se synchronizovat s místním počítačem v umístění /home/karim/. IP adresa vzdáleného počítače je 10.1.1.2 a uživatelské jméno je karim.
Na terminálu proveďte následující příkaz.
rsync -avr [email protected]:/home/karim/ /home/karim/testfolder
Níže je ukázkový výstup.
Jak automatizovat zálohování
Je pohodlnější zálohování automatizovat, aby se systémoví inženýři nemuseli starat o každodenní ruční provádění příkazů a vytváření záloh.
V Linuxu existuje známý nástroj zvaný „crontab“, který se používá k automatizaci procesu zálohování. Můžeme naplánovat spouštění všech výše uvedených příkazů denně, týdně nebo měsíčně. Pokud jste do své distribuce Linuxu nenainstalovali crontab, spusťte následující příkazy na terminálu s právy sudo.
apt-get update
apt-get install cron
Jakmile nainstalujete crontab, spusťte na terminálu následující příkaz a otevřete editor crontab.
crontab -e
Ukázkový výstup by měl vypadat následovně.
Crontab má následujících pět polí,
Příkaz m h dm m dw
m:určuje minuty (0-59)
h:určuje hodinu (0-23)
dm:určuje den v měsíci (1-31)
m:určuje měsíc (1-12)
dw:určuje den v týdnu (0-6, kde 0 je neděle)
Vezměme si předchozí příklad synchronizace adresáře z jednoho disku na druhý a řekněme, že to chceme dělat každý den ve 12:00, úloha cron by měla být následující.
0 0 * * * rsync -avr /media/hdd1/data-1 /media/hdd2/
Předpokládejme, že chcete zálohovat každý měsíc v neděli ve 12 hodin, úloha cron by měla být zapsána následovně.
0 0 1 * * rsync -avr /media/hdd1/data-1 /media/hdd2/
Závěr
Přečetli jste si, jak můžeme zálohovat pomocí extrémně výkonného příkazu ‚rysnc‘. Článek jsme uzavřeli „crontabem“. „rsync“ a „crontab“ je také užitečná kombinace.