Zálohování příkazem tar

Vytvoření zálohy

tar cvfz [vystupní soubor] [cesta co chci zálohovat

ukázka

tar cvfz /tmp/zalohat.tar.gz /etc

rozbalení zálohy

tar xvfz [soubor zálohy] -C [cesta kam chci rozbalit]

ukázka

tar xvfz /tmp/zalohat.tar.gz -C /tmp

parametry příkazu tar

x – extract , rozbalit
c – create, vytvořit archiv
v – verbose , výstup na obrazovku
f – file, výstupní (vstupní) soubor
z – použitá komprese gzip
j – použitá komprese bzip2

Použití tar pro rozdílovou (increment) zálohu

1. vytvoření hlavní zálohy a souboru s informacemi o jednotlivých souborech

tar cvfz archive1.tar.gz --listed-incremental=/var/log/usr.snar

2. vytvoření zálohy pouze souborů, u kterých byla zjištěna změna

tar cvfz archive2.tar.gz --listed-incremental=/var/log/usr.snar

v archivu archive1.tar.gz je plná záloha a v archivu archive2.tar.gz jsou zazálohovány pouze soubory změněné

soubor /var/log/usr.snar obsahuje informace o full záloze a času úpravy jednotlivých souborů v plné záloze

 

Ukázkový skriptík incrementálni zálohy

#!/bin/bash
datum=`date +%d%m%y`;
timestamp=`date +%s`
# vypocitam o 14 dnu drive pouziji vypocet timestamp
prom=$(( $timestamp-14*24*60*60 ))
echo $prom
echo Aktualni: "$datum"
echo `date -d @"$prom" +%d%m%y`
# kontrola existujeli adresar pokud ne vytvorim
if [ ! -d /zaloha ] ; then
	mkdir /zaloha
fi
# rozhoduji se jestli je ta zaloha full nebo incremetal v pripade
# incremental smazu informacni sobuor o zalohach
# prikaz logger posle informaci do /var/log/syslog nebo messages



if [ "$1" == "full" ]; then
	if [ -f /zaloha/mojezaloha ]; then
		rm /zaloha/mojezaloha
	fi
	tar cvfz /zaloha/"$datum"zaloha.tar.gz --listed-incremental=/zaloha/mojezaloha /etc 
	if [ "$?" -eq "0" ]; then
		logger "záloha full OK"
	else
		logger "záloha full Error"
	fi
else
	tar cvfz /zaloha/"$datum"zaloha.tar.gz --listed-incremental=/zaloha/mojezaloha /etc 
	if [ "$?" -eq "0" ]; then
		logger "záloha incremental OK"
	else
		logger "záloha incremental Error"
	fi
fi