Kopia zapasowa podzielona na wiele nośników (rar)

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania

W dzisiejszych czasach normalną sprawą jest wykonywanie kopii zapasowych z użyciem kompresji. (logi tekstowe bardzo ją lubią), jak również serwery wirtualne (obrazy dysków vmdk itp kompresują się bardzo ładnie w moich testach często uzyskiwałem 50% / 60% rozmiaru oryginalnego).


Po mimo wejścia w standard informatyki stosowania streamerów i innych zabawek typu biblioteki, w dalszym ciągu dla niewielkiej ilości danych najlepszym rozwiązaniem jest wykonywanie kopii zapasowych na nośniki typu DVD-R.

Wszystko to za sprawą stosunku ceny do jakości który jest niewątpliwie bardzo dobry. (wystarczy kupować nośniki po minimum 100 sztuk aby uzyskać atrakcyjne rabaty) wszak nie zależy nam na eleganckich pudełeczkach itp.

Nośnik DVD z powodzeniem można schować na półkę, podczas gdy taśmy np DDS wymagają specjalnego przechowywania bez narażenia na pole magnetyczne itp. Nie chcemy dopuścić do sytuacji kiedy jedna na 20 kaset przestanie działać, najlepiej stosować metodę weryfikacji po nagraniu, co jednak jest bardzo! kłopotliwe.

Również żywotność nośnika taśmy nie jest wysoka. Maksymalnie wynosi około 100 nagrań. Jeżeli nagrywamy wiele kaset, trzeba liczyć się z codziennym czyszczeniem streamera (nowe kasety bardzo brudzą głowicę).

Niewątpliwym atutem streamera jest fakt że automatycznie dzieli on dane na kasety, dzięki czemu naszym zadaniem jest tylko i wyłącznie zmienianie nośników.


W przypadku płyt DVD nie jest już tak różowo, ale wszak jest 21 wiek, i wszystko da się oskryptować. Krok po kroku stworzymy tutaj nasz mały system do wykonywania kopii zapasowych :)

Żeby lepiej poćwiczyć i zrozumieć metodykę operacji kopii zapasowej wykonamy dwa przykłady.

Z doświadczenia wiem że najlepszą metodą na dzielenie plików jest użycie RAR-a wraz z limitem. Użycie komendy split w testach czasami doprowadzało do uszkodzenia danych! Jak również nie pozwala na dostęp do danych z pod innych systemów operacyjnych, które nie posiadają zaimplementowanej komendy split. Archiwum RAR będzie najlepszym rozwiązaniem.

Aby dodać folder do archiwum wystarczy wydać systemowi komendę.

rar a -r -v4300000 -m1 nazwa_archiwum.rar folder_z_waznymi_danymi/
  • v - oznacza ilość kilobajtów jaką będzie mieć jedno archiwum, jeżeli rozmiar zostanie przekroczony stworzone zostanie kolejne.
  • m - oznacza stopień kompresji (1) - najniższy, oraz najszybszy, idealne rozwiązanie do kopii zapasowych. (5) - najwyższy ale najbardziej obciążający dla procesora. Warto przekalkulować zyski i straty, czy dla kilku gigabajtów warto tracić kilka godzin.
  • r - oznacza wchodzenie w głąb folderów (załączenie podfolderów )

W trakcie wykonywania kopii, jeżeli robimy ją w godzinach roboczych warto zastosować limitowanie procesora, aby nie doprowadzić do sytuacji pochłonięcia zbyt dużej ilości zasobów przez proces archiwizacji, co mogło by wpłynąć niekorzystnie na zadowolenie naszych podopiecznych (czytaj użytkowników).

Limitowanie procesora dla określonego procesu


Wypakowywanie danych z archiwum jest wyjątkowo proste, wystarczy zgrać wszystkie części "party" do jednego folderu a następnie wydać rozkaz dekompresji.

unrar x Nazwa_Archiwum.part1.rar 


Pliki zostaną wypakowane do bieżącego folderu.



Wersja ALPHA skryptu (dokończę - kiedyś :) )

#!/bin/bash
sciezka_tymczasowa="/var/tmp/123";
sciezka_do_zbackupowania="/home/administrator/Pulpit/ZDALNY/DANE/HISEC";
sciezka_do_nagrywarki="/dev/scd0";
rozmiar_czesci="4300000";
stopien_kompresji="1";
nazwa_pliku=`date '+kopia_utworzona_%d-%m-%y_%H:%M'`;

#tylko jeżeli używasz nośnika DVD-RW który zawiera poprzedni backup
formatuj_plyte_dvd=1;
#tylko jeżeli używasz nośnika DVD-RW który zawiera poprzedni backup

#Tworzenie środowiska i sprzątanie
mkdir $sciezka_tymczasowa;
mkdir $sciezka_tymczasowa/tmp_obraz;
rm $sciezka_tymczasowa/*.*;
#Tworzenie środowiska i sprzątanie




rar a -r -v$rozmiar_czesci -m$stopien_kompresji $sciezka_tymczasowa/$nazwa_pliku.rar $sciezka_do_zbackupowania/

for file in $sciezka_tymczasowa/*.*; do 

echo "Wypalam fragment pierwszy:";
echo $file;

echo -n "Proszę włożyc nośnik do napędu"
read cd
echo "Dziękuję..."

if [ $formatuj_plyte_dvd -eq 1 ];
then
echo "Formatuje dysk...";
dvd+rw-format -force $sciezka_do_nagrywarki 
else
echo "Wprowadź czysty dysk...";
fi

rm $sciezka_tymczasowa/tmp_obraz/*.*;
#mkisofs -r -o /$sciezka_tymczasowa/tmp_obraz/cd.iso $file
genisoimage -udf -f -r -J -allow-limited-size -o /$sciezka_tymczasowa/tmp_obraz/cd.iso $file 
growisofs -Z $sciezka_do_nagrywarki=/$sciezka_tymczasowa/tmp_obraz/cd.iso
eject -T $sciezka_do_nagrywarki
done