| Tuningujeme Linux (2.) - Záloha |
|
Každý to známe: Disk máme plný důležitých dokumentů, které jsou pro nás velmi cenné. Ať už se jedná o zdrojové kódy či dopisy od milenky, takových dat je škoda. A proto není nic jednoduššího než si dělat pravidelnou zálohu. Zároveň se naučíme pracovat s Cron démonem, který obstarává pravidelné úlohy v Linuxu. Samozřejmě, že si můžete soubory kopírovat a balit ručně, ale kdo by se s tím páral, když na to můžeme použít skriptík, který má pár řádek a jehož vytvoření nám zabere zlomek času.Co by měl takový zálohovací skript umět? V první řadě zabalit a uložit data někam na disk v přehledném formátu a zpracovávat libovolné množství adresářů k zálohování. Předpokládejme, že zálohovat data budete chtít maximálně dvakrát denně. Jednou se bude skript spouštět automaticky a podruhé si ho můžete spustit ručně. Pokud ho spustíte vícekrát, skript vám přepíše druhý zálohovaný soubor. Skript si bude číst adresáře pro zálohování ze souboru stejně jako začátky jmen souborů se zálohou. Např. chcete-li zálohovat dokumenty uživatelů user1, user2 a k tomu záloha etc, tak konfigurační soubor by vypadal takto: user1 /home/user1/docs user2 /home/user2/docs etc /etc Výstupní soubory, které bude zálohovací skript vytvářet, budou v tomto tvaru: jmeno-RRRR-MM-DD.tgz Tak a tady je už onen zázračný skript, který dělá všechno výše uvedené.
#!/bin/bash
# adresar pro ukladani
cd /home/zaloha/data
# jmeno konfiguracniho souboru
config='config'
if [ -s $config ]; then
# projdeme kazdy radek konfiguraku
for radek in $(seq 1 `cat $config | wc -l`); do
# parsovani jednotlivych casti
nazev=$(cat $config | head -n $radek | tail -n 1 | awk '{print $1}')
adresar=$(cat $config | head -n $radek | tail -n 1 | awk '{print $2}')
if [ -d $adresar ]; then
#jmeno souboru
jmeno="$nazev-`date +"%Y-%m-%d"`.tgz"
if [ -e $jmeno ]; then
jmeno="$nazev-`date +"%Y-%m-%d"`b.tgz"
fi
#zalohovani
echo -n "Zalohuji $nazev..."
tar -czf $jmeno $adresar 2> /dev/null && echo "OK." || echo "CHYBA!"
else
echo "$nazev - NEPLATNY ADRESAR PRO ZALOHOVANI!"
exit
fi
done
echo "Vsechno hotovo."
else
echo "Nenalezen konfiguracni soubor!"
fi
A nyní si celý skript rozchodíme, aby byl podle našich
představ. Musíme si na začátku položit otázku, kam s daty, které
budeme zálohovat. Vytvořme si nového uživatele a jeho domácí adresář
nám k tomu dobře poslouží. Možná si říkáte, že je to zbytečnost, ale
takto se velikost zálohy dá kontrolovat kvótami (Omezení diskového prostoru
pro uživatele) a navíc na většině linuxových systému je /home připojen
jako nový diskový oddíl nebo dokonce i jiný disk. Jako root proveďte: mkdir /home/zaloha, domácí adresář mkdir /home/zaloha/data, umístění záloh useradd zaloha chmod 757 /home/zaloha, nastavte práva pro zápis všech Ted si zkopírujte skript ze stránky a nahrajte ho do souboru /home/zaloha/zalohuj Nastavte soubor pro spuštění: chmod +x /home/zaloha/zalohuj Vytvořte v adresáři /home/zaloha/ soubor config: touch /home/zaloha/config Do něj pak zadejte adresáře pro zálohování v již uvedeném formátu. (např. mc -e /home/zaloha/config ). Vyzkoušejte. V adresáři /home/zaloha/data by teď měl být alespoň jeden zabalený soubor. CRON: Na konec si necháme skript spouštět v pravidelnou dobu pomocí Cron démona. Přesvědčte se, že Cron běží: ps -aux | grep cron
Jestliže ne, nainstalujte si ho (je součástí většiny distribucí). Dále
si nastavte proměnnou prostředí VISUAL na nějaký editor, který používáte. Pár
příkladů:
Jednotlivé položky jsou odděleny mezerou. Nyní si nastavte skript podle svého. Tak. A vše je hotovo. Nyní už se o svá data bát nemusíte, teda skoro. Opatrnosti totiž nikdy nezbývá. |
| < Předch. | Další > |
|---|