Hlavní navigace

Jednoduché zálohovanie linuxového systému pre začiatočníkov

23. 1. 2002
Doba čtení: 3 minuty

Sdílet

V praxi sa po nakonfigurovaní malých serverových systémov často zabúda na ich zálohovanie, väčšinou kvôli absencii dôležitých údajov v systéme. Treba si však uvedomiť, že po neopraviteľnom kolapse systému nám dobre urobená záloha ušetrí nemalé množstvo času pri jednoduchej možnosti obnovy systému zo zálohy a v niektorých prípadoch ušetrí čas pri tvorbe analogických serverov k serverom už v našom systéme existujúcich.

Dnes si ukážeme, ako je možné jednoduchým spôsobom bez nutnosti doinštalovávania podporného softwaru túto úlohu hravo zvládnuť na väčšine systémov, bez nejakých väčších znalostí. Postačia nám nástroje tar, gzip a scp, ktoré pre nás túto úlohu v spolupráci s cronom zabezpečia. Jedná sa však o základnú myšlienku zálohovania, ktorú je potrebné upraviť si podľa vlastných požiadaviek systému.

Celá myšlienka je založená na kompletnej archivácie diskového priestoru do archívu a následné prenesenie jeho kópie na iný server v sieti, z ktorého je možné v prípade núdze vykonať obnovu systému, jeho inštaláciu na druhý pevný disk s iným delením partícií pri migrovaní, alebo proste pri tvorbe podobného systému.

1. zálohovanie

Najprv sa treba ubezpečiť, že máme dostatok voľného miesta na danej partícii a zvolíme si adresár, do ktorého sa zálohy budú vytvárať. V našom modelovom príklade to môže byť napríklad /var/BACKUP, takže si daný adresár pripravíme. Nasleduje vytvorenie skriptu, ktorý nám zálohovanie zabezpečí. Pre možnosť použitia pre denné aj týždenné zálohovanie pri súčasnej existencii viacerých verzií zálohy budeme generovať názov výsledného súboru od aktuálneho dátumu. Pre aktuálnu zálohu bude vždy vytvorený symbolický link pre zjednodušenie detekcie aktuálnej zálohy pre účely prenosu poslednej zálohy na iný server. Skript pre naše potreby zálohovania môže vyzerať nasledovne.

#!/bin/sh
/bin/tar -zPcf /var/BACKUP/zaloha-`date +%Y-%m-%d`.tar.gz --ignore-failed-read
  --exclude proc -exclude BACKUP / > /dev/null 2>&1
rm -f /var/BACKUP/webbackup.tar.gz
ln -s /var/BACKUP/zaloha-`date +%Y-%m-%d`.tar.gz /var/BACKUP/webbackup.tar.gz

Teraz už stačí iba pripísať tento jednoduchý skript do cronu pre automatické spúšťanie buď denne alebo týždenne. Treba si však ustriehnuť voľné miesto na disku, nakoľko tento jednoduchý príklad kontrolu voľného miesta nevykonáva. Takže je na vás nepotrebné zálohy priebežne mazať.

2. migrácia zálohy na iný server

Či už si pre uskladnenie jednotlivých záloh vyhradíte samostatný stroj, alebo si proste medzi sebou budete transportovať zálohy medzi servermi, je nutné uskutočniť ich prenos. Ak sa rozhodnete vyhradiť si samostatný stroj, zálohy môžete ukladať do ľubovoľného adresára, ak sa však rozhodnete pre systém cyklického zálohovania serverov medzi sebou, je potrebné zálohy ukladať do adresára, ktorý je zo zálohovania vylúčený, ako napríklad v našom príklade /var/BACKUP. Pre jednoduchosť transportu môžeme použiť napríklad scp z balíka openssh, ktorý nám elegantne po vygenerovaní príslušných authentikačných kľúčov utilitou ssh-keygen a ich umiestnení do domovských adresárov užívateľov umožní kryptovaný prenos záloh bez potreby zadávania hesla. V našom prípade budeme zálohovať poslednú aktuálnu zálohu na vyhradený server pri použití symlinku, ktorý nám predchádzajúci skript vždy na konci vytvoril. Prenos realizujeme nasledovným skriptom, ktorý buď vložíme do cronu, alebo priamo do predchádzajúceho skriptu.

#!/bin/sh
scp /var/BACKUP/webbackup.tar.gz
 backup@zalohy.domena.sk:/home/backup/web/ -i -v

3. Obnova systému zo zálohy a migrácia na iný disk

Pre obnovu systému zo zálohy postačuje požadovaný archív na danom stroji rozbaliť priamo v koreňovom adresári, prepísať lilo zavádzač a obnova je zrealizovaná. Treba si však uvedomiť, že súbory, ktoré boli po zálohe vytvorené a v pôvodnej zálohe sa nenachádzajú na disku zostávajú. V prípade nefunkčnosti stroja postačuje na novom nainštalovať požadovanú distribúciu s minimálnym množstvom balíkov na pevný disk a po nakopírovaní archívu na nový stroj postačuje znovu previesť rozbalenie archívu príkazom, nasledovaným reštartom systému.

Cloud23

tar xyvf /webbackup.tar.gz

Ak sa rozhodneme týmto spôsobom premigrovať celý systém na iný pevný disk rozdelený na partície iným spôsobom, ako tomu bolo pri pôvodnom serveri, je potrebné po rozbalení systému upraviť si súbory /etc/fstab a /etc/lilo.conf s následným prepísaním lilo loaderu a systém je k dispozícii.

Osobne mi zálohovanie tohto typu pred nedávno veľmi pomohlo po absolútnom zrútení systému po výmene hardwaru, ktoré nastalo nesprávnym zápisom dát na pevný disk na novom stroji a tým sa stala väčšina dát na disku poškodená. Obnova trvala necelých 20 minút bez straty dôležitých údajov a ušetrila mnoho času pri konfigurovaní nového systému, prenášania dát a užívateľských účtov. Dúfam, že tento systém bude zaujímavý aj pre vás, ak ste doteraz žiadny spôsob zálohovania nepoužívali.

Autor článku