Blog (55)
Komentarze (1.1k)
Recenzje (0)
@arlidKopia zapasowa bez specjalistycznych narzędzi? Czy to możliwe?

Kopia zapasowa bez specjalistycznych narzędzi? Czy to możliwe?

07.09.2013 | aktual.: 08.09.2013 08:27

O kopii zapasowej czy kopii bezpieczeństwa przypominamy sobie najczęściej wtedy, gdy zauważamy, że jej nie zrobiliśmy. Niestety, czasem utrata danych zdarza się tak nagle. Swojego czasu (oj dawne czasy :P) sprawdzałem jak wypadają w przypadku tworzenia kopii zapasowej dedykowane do tego celu programy. Czy jednak musimy instalować dodatkowe oprogramowanie by stworzyć kopię zapasowa dostosowaną do naszych potrzeb?

Można stwierdzić, że... nie. Wystarczy tylko odrobina chęci i sprytny archiwizer p;lików PeaZip. Tak wystarczą tylko te dwa punkty. Na początek może założenia tworzonych backupów:

  • w przypadku zmiany plików, archiwum się aktualizuje
  • względnie dobra kompresja plików
  • backup każdej pozycji w osobnym archiwum
  • możliwość zrobienia kopii tylko jednej wybranej przez użytkownika lokalizacji, bądź wszystkich naraz

Oczywiście założenia dla każdego z nas mogą być inne. Możemy np. stworzyć foldery z datą i godziną i dopiero w nich przechowywać archiwa czy tez dodać w nazwie pliku datę czy czas.

Do dzieła

PeaZip oferuje wsparcie formatu 7z. Oferuje także możliwość wykonywania powierzonych mu zadań poprzez wiersz poleceń o co w głównej mierze opiera się idea tworzenia kopii w tym wpisie. Stworzymy skrypt BAT, w którym zdefiniujemy zadania polegające na stworzeniu naszej kopii bezpieczeństwa.

Otóż na początku musimy zrobić dwie rzeczy.

Lokalizacja PeaZip

Pobieramy wersję portable PeaZip i wypakowujemy ja np. na dysku zewnętrznym. Dzięki temu w przypadku chęci zrobienia kopii na innym komputerze po podłączeniu dysku nie będzie z tym problemu. Oczywiście w przypadku, gdy używamy jej jako naszego archiwizera lub robimy kopię danych tylko na jednym komputerze możemy pobrać wersję instalacyjna lub wypakować program na naszym lokalnym dysku. Zapisujemy sobie ścieżkę do katalogu Z programem PeaZip.

Wybranie katalogów do archiwizacji

Drugą czynnością, jaka powinniśmy zrobić jest znalezienie ścieżki do miejsc, których kopię chcemy zrobić. Przykładowo lokalizacja profilu klienta poczty Thunderbird znajduje się w przypadku np. Windows 7 w podanej ścieżce:

C:\Users\Nazwa_użytkownika\AppData\Roaming\Thunderbird

Oczywiście zaimplementujemy zmienne środowiskowe, tak by nasz skrypt działał niezależnie od nazwy użytkownika, więc nasza ścieżka w przypadku tego programu będzie wyglądała następująco:

 "%APPDATA%"\Thunderbird

Polecam spisać sobie listę takich ścieżek w notatniku. Często lokalizację profili, czy ustawień można znaleźć w opcjach programu czy na stronie producenta.

Gdy już stworzymy sobie taką listę miejsc jakie chcemy zarchiwizować przystąpmy do napisania skryptu wykonującego kopie bezpieczeństwa zgodną z naszymi ustaleniami.

Więc BATem go...

Na początek „nagłówek” naszego skryptu i ustawienie odpowiedniej trony kodowania (nie zawsze jets konieczna)

@echo off
@setlocal
chcp 1250>nul

oraz ustawienie zmiennej z odwołaniem do archiwizera 7z:

set peazaip=L:\peazip\res\7z\7z.exe

Po ścieżce do katalogu PeaZip dodajemy

res\7z\7z.exe

by korzystać z archiwizera 7z.exe

By nasz skrypt wyglądał profesjonalnie stworzymy mu nawet menu :) Nadajemy na początku główny wygląd „programu” wraz z samym menu:

:menu
cls
echo Witaj w programie do backupu. Wybierz interesujący Cię backup do wykonania:
echo:
echo 1) Backup profilu komunikatora AQQ
echo 2) Backup profilu klienta poczty Thunderbird
echo 3) Wyjście
set/p "menu=>> "
if %menu%==1 goto wapster
if %menu%==2 goto thunderbird
if %menu%==3 exit
if %menu%==1 goto thunderbird

Mówi o tym, iż w przypadku wybrania opcji 1 zrobimy tylko kopię klienta poczty Thunderbird. Natomiast w przypadku wybrania opcji 2 zrobimy całkowitą kopię wszystkich poprzedzających opcji.

if %menu%==3 exit

zapewnia nam wyjście ze skryptu.

482349

Stworzenia zadania backupu

Teraz właśnie przyda się stworzona wcześniej lista z lokalizacją miejsc do zarchiwizowania. Liczba miejsc do zarchiwizowania jest równa liczbie „pojedynczych” akcji w menu.

Stwórzmy taką akcję. Oto luźny schemat takiej akcji:

"%peazaip%" u -t7z -m0=LZMA2 -mmt=on -mx9 -md=64m -mfb=273 -ms=64g "E:\Thunderbird.7z"  "%APPDATA%"\Thunderbird 

"%peazaip%" - zadeklarowana przez nas wcześniej zmienna z lokalizacja archiwizera 7z.

U - w przypadku istnienia archiwum zostanie ono zaktualizowane

-t7z - rozszerzenie pliku archiwum

-m0=LZMA2 – rodzaj metody

-mmt=on – wątki (Ogólna wielowątkowość)

-mx9 – stopien kompresji (Ultra)

-md=64m – rozmiar słownika

-mfb=273 - Słowo

-ms=64g – Stały blok

"E:\Thunderbird.7z" – lokalizacja docelowa kopii zapasowej i z nazwą pliku

"%APPDATA%"\Thunderbird - lokalizacja ścieżki do zarchiwizowania

Zadanie skompletowane

I dla klienta poczty dodajemy

:thunderbird
cls
"%peazaip%" u -t7z -m0=LZMA2 -mmt=on -mx9 -md=64m -mfb=273 -ms=64g "E:\Thunderbird.7z"  "%APPDATA%"\Thunderbird 
pause
goto menu

pause zatrzymuje skrypt i czeka na naciśnięcie jakiegokolwiek klawisza. Po jego naciśnięciu goto menu przywraca nas do menu „okna głównego” skryptu.

Robimy tak dla każdej wybranej przez nas lokalizacji pamiętając o tym, by uwzględniać ją w menu. Na końcu skryptu dodajemy deklarację dla wykonania wszystkich zadań:

:all
cls
"%peazaip%" u -t7z -m0=LZMA2 -mmt=on -mx9 -md=64m -mfb=273 -ms=64g "E:\Thunderbird.7z"  "%APPDATA%"\Thunderbird 
pause
goto menu

W całości skrypt wygląda tak:

@echo off
@setlocal
chcp 1250>nul
set peazaip=L:\peazip\res\7z\7z.exe

:menu
cls
echo Witaj w programie do backupu. Wybierz interesujący Cię backup do wykonania:
echo:
echo 1) Backup profilu komunikatora AQQ
echo 2) Backup profilu klienta poczty Thunderbird
echo 3) Wyjście
set/p "menu=>> "
if %menu%==1 goto wapster
if %menu%==2 goto thunderbird
if %menu%==3 exit

:thunderbird
cls
"%peazaip%" u -t7z -m0=LZMA2 -mmt=on -mx9 -md=64m -mfb=273 -ms=64g "E:\Thunderbird.7z"  "%APPDATA%"\Thunderbird 
pause
goto menu

:all
cls
"%peazaip%" u -t7z -m0=LZMA2 -mmt=on -mx9 -md=64m -mfb=273 -ms=64g "E:\Thunderbird.7z"  "%APPDATA%"\Thunderbird 
---RESZTA ZADAŃ--
pause
goto menu

Na koniec zapisujemy nasz skrypt pod dowolną nazwą z rozszerzeniem .bat

Posumowanie

Tak oto stworzyliśmy prosty skrypt, niezabierający wiele miejsca, który daje nam możliwość stworzenia bardzo dostosowanego systemu tworzenia kopii zapasowej. Wystarczy uruchomić skrypt i już możemy w szybki sposób wykonać backup wybranej przez nas lokalizacji. Dodatkowo pozwala to zaoszczędzić miejsce i tak dla przykładu ze 180 MB lokalizacji możemy uzyskać ok 56 MB co daje aż ok 69‑70% oszczędności miejsca co myślę, ze jest dobrym wynikiem. W przypadku posiadania i używania przez nas PeaZip jako domyślnego archiwizera jest to jeszcze prostsze.

Oczywiście wadą jest to, ze skrypt musimy stworzyć sami jeżeli założymy, ze chcemy mieś tak „zaawansowany” system. Oczywiście w przypadku, gdy chcemy wrzucić wszystko do „jednego worka” możemy skorzystać z kreatora w programie i zapisać nasz skrypt wygenerowany automatycznie.

Oczywiście każdy ma własne zdanie dotyczące danych kwestii nie zamierzam go w żaden sposób podważać, czy obrażać kogokolwiek w jakikolwiek sposób. Przepraszam także za ewentualne błędy.

Wybrane dla Ciebie
Komentarze (25)