Pingwin archiwista

Miłośnicy systemu spod znaku pingwina nie powinni ulegać złudzeniu, że ich dane pod Linuksem są w 100% bezpieczne. Dlatego warto poznać kilka metod wykonywania automatycznego backupu ważnych informacji.

Najczęściej o potrzebie zrobienia kopii zapasowej ważnych plików przypominamy sobie w chwili awarii, kiedy może być już na to za późno. Pomimo dość wysokiego poziomu bezpieczeństwa domyślnie zainstalowanej dystrybucji Pingwina (Mandrake, SuSE) błędy występują także w oprogramowaniu o rodowodzie Open Source. Poza tym nieraz wystarcza przepięcie w sieci energetycznej, aby np. uszkodzić zasilacz lub – co gorsza – inne komponenty peceta. Zarówno spięcia, jak i luki w zabezpieczeniech narażają nas na ryzyko utraty cennych informacji – warto się przed tym zabezpieczyć.

W stylu retro

Wbrew pozorom Linux oferuje wiele narzędzi pozwalających na tworzenie kopii bezpieczeństwa danych. Najprostszym i najbardziej znanym jest z pewnością TAR. Zazwyczaj aplikację tę kojarzymy z obsługą archiwów skompresowanych w formacie TAR.GZ lub TAR.BZ2, a nie z programem do backupu. Otóż nazwa TAR (czyli Tape ARchiver) oznacza tyle co archiwizer taśmowy i jednoznacznie wskazuje na jego pierwotne przeznaczenie. TAR może bez problemów współpracować ze streamerami i nagrywać dane na taśmach magnetycznych, odwołując się do specjalnego urządzenia systemowego /dev/tape. W domowym komputerze nie dysponujemy jednak z reguły streamerem, więc podczas wykonywania kopii zapasowych będziemy tworzyli zbiory-archiwa. TAR to stosunkowo nieskomplikowany program, jednak w połączeniuz systemowym cronem oraz odpowiednim skryptem można go wykorzystać do automatycznego tworzenia kopii danych.

Prezentujemy poniżej dość prosty skrypt, który pozwala automatycznie wykonać pełny backup katalogów wskazanych przez listę ${lists}, znajdującą się w folderze opisanym zmienną ${BKPDIR}. Nazwa listy powinna mieć rozszerzenie LST, np. moje_dane.lst. Plikiem zawierającym backup będzie w takim wypadku moje_dane..tgz.

#!/bin/sh
BKPDIR=/mnt/backup
# dysk (partycja), na którym będziemy # przechowywać dane
BOOT=sys
# lista zawierając ważne systemowe # katalogi np. /boot
NUMBKPS=4 # liczba kopii zapasowych

if [ ! -d ${BKPDIR} ] ; then
echo ${BKPDIR} nie jest właściwym katalogiem lub nie istnieje
fi

mount ${BKPDIR} # montujemy partycję na backup

lists=${BKPDIR}/*.lst #zmienna z listą katalogów do # backupu
ext=tgz # rozszerzenie dla tworzonych plików

for list in `ls ${lists}`; do
type=`basename ${list} .lst`

if [ ${type} = ${BOOT} ] ; then mount /boot; fi

cat ${list} | xargs tar zlcf \${BKPDIR}/${type}.`date +%Y-%m-%d-%H%M`.${ext} > /dev/null 2>&1
# tutaj tworzymy archwium

if [ ${type} = ${BOOT} ] ; then umount /boot; fi

num=${NUMBKPS} #wykasujemy teraz „stary” backup
for evict in `ls -t ${BKPDIR}/${type}.*.${ext}`; do
if [ ${num} -le 0 ] ; then rm -f ${evict}
else num=$((${num}-1)) ; fi
done
done
umount ${BKPDIR} # odmontowujemy partycję, na której jest nasza kopia bezpieczeństwa

Przykładowa lista sys.lst
/boot
/etc
/root
/usr/local/portage
–exclude=/usr/local/portage/ distfiles #ten podkatalog
# wyłączamy z backupu
/usr/src/linux/.config
/var/lib

Bardziej elastycznie

Powyższy skrypt jest stosunkowo prosty, lecz powinien się sprawdzić do sporządzania typowych backupów Pingwina. Niestety, ma on także sporo ograniczeń, choćby brak opcji podziału archiwów na części (np. po 700 MB w celu łatwego wypalania krążków CD-R). Możemy to oczywiście poprawić, dodając stosowne opcje do TAR-a. Zamiast jednak oprogramowywać wszystkie możliwe przypadki, warto sięgnąć po narzędzie flexbackup. Program dostępny jest standardowo w wielu dystrybucjach Linuksa, lub pobierzemy go ze strony projektu http://flexbackup.sourceforge.net/. Najważniejszą zaletą aplikacji w porównaniu ze skryptem TAR-a jest dużo prostszy sposób tworzenia backupów przyrostowych oraz różnicowych. Dodatkowo niezwykle łatwo zmusić flexbackupa, aby kopię zapasową danych z lokalnego komputera zapisywał w udostępnionym w sieci zdalnym katalogu. Przygotowanie programu do pracy wymaga jedynie modyfikacji pliku konfiguracyjnego /etc/flexbackup. Posługując się komendami set oraz prune, możemy określić, jakie katalogi będą zachowywane, a które mają być pomijane podczas tworzenia backupu.

Narzędzia graficzne
W pełni automatyczne utworzenie kopii zapasowej ważnych informacji nie zawsze musi się wiązać z pisaniem skomplikowanych skryptów czy też edycją systemowego crontaba. Użytkownicy środowiska KDE mogą na przykład skorzystać z narzędzia Konserve, z pomocą którego w łatwy sposób zabezpieczą dane. Praca z tą aplikacją jest niezbyt trudna dzięki odpowiedniemu kreatorowi, pozwalającemu w trzech krokach określić, które dane mają być kopiowane, w jakie miejsce oraz co jaki okres. Konserve pozwala na tworzenie wielu niezależnych od siebie zadań backupu. Niestety, program pracuje tylko w trybie graficznym, co znacząco ogranicza możliwości wykorzystania go do realizacji „poważnych” backupów systemu.

Zamknij

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.