Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

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

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 thunderbirdMó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.

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.  

windows bezpieczeństwo porady

Komentarze

0 nowych
Scorpions.B WSPÓŁPRACOWNIK  21 #1 07.09.2013 21:30

Jeśli miałbyś wybrać sposób tworzenia kopii zapasowej, to co byś wybrał: użycie specjalnego oprogramowania do tworzenia kopii zapasowej, czy skorzystałbyś z metody przedstawionej w tym wpisie?

zoso71   9 #2 07.09.2013 21:34

@Scorpions.B - generalnie to ja też pomyślałem: po kiego grzyba. Mimo wszystko jednak są osoby, które lubią się w takie rzeczy bawić i robić choć mogą szybciej i łatwiej. To tak jak z modelarstwem: można tworzyć tygodniami samodzielnie lub ... kupić od razu.

Scorpions.B WSPÓŁPRACOWNIK  21 #3 07.09.2013 21:41

@zoso71
Nie pomyślałem tak ;) Tylko spytałem na jaką metodą w końcu zdecydowałby się autor tego wpisu.

M@ster   17 #4 07.09.2013 22:54

@Scorpions.B
Ja używam czegoś takiego, tylko dużo bardziej zaawansowanego (pełny backup + różnicowy + ftp upload) - również skypcik BAT sobie napisałem do pary z 7zipem.

Zasadniczo gdybym miał szukać softu który robił by dokładnie to co potrzebuje to bym nie znalazł. Nieco mi zajęło dopracowanie szczegółów ;) ale teraz po każdym skończonym dniu pracy 1 klik i wszystko robi się samo.

sgj   11 #5 07.09.2013 22:59

@"Wystarczy tylko odrobina chęci i sprytny archiwizer plików PeaZip. "

Po kiego PeaZip jak i tak używasz samego 7-Zip?


@ " Przykładowo lokalizacja profilu klienta poczty Thunderbird znajduje się w przypadku np. Windows 7 w podanej ścieżce:

C\Users\nazwa_użytkowina\Thunderbird"

Przykładowo podana lokalizacja jest nieprawidłowa.

adamwiacek   3 #6 07.09.2013 23:06

Hmm, a jak rozwiążesz problem przyrostowych i przywracania całości backupu z wybranego okresu? :)

Prosty użytkownik robi kopiuj wklej, bardziej zawaansowany raczej korzysta z gotowca w postaci jakiegoś programu, który zautomatyzuje pracę. Ale doceniam pracę włożoną w skrypt. Swego czasu zrobiłem skaner podsieci w cmd, ale miałem problem z odczytem wyników pinga i dałem sobie spokój. Dlatego korzystam z gotowego programu, który co 5 min szuka mi nowych urządzeń w sieci i zajmuje mi raptem 10mb w pamięci.

arlid   14 #7 08.09.2013 08:26

@Scorpions.B
Używam tej metody. Tylko skrypt jest troszkę inny - katalogi z datą, godziną itd. Głównie dlatego, że chciałem to jakoś jak najlepiej dostosować pod siebie. tworząc kilka zadań (w przypadku, gdy każda lokalizacja to odrębne archiwum) i uruchamiając je po kolei muszę pilnować kiedy się kończą i uruchamiać kolejne. uruchamiając wszystkie to działało w miarę dla małej liczby zadań. Tutaj wystarczy że uruchomię skrypt. Oczywiście można znaleźć i czysto narzędziowe rozwiązania, jednak miało być to proste, bez skomplikowanej instalacji i w głównej mierze przenośne.

@M@ster
Z chęcią zobaczyłbym jak rozwiązałeś problem kopii przyrostowej :) Tak z ciekawości :D

@sgj
PeaZip dlatego, że nie znalazłem wersji portable 7-zip. A chciałem by mogło to być ;'mobilne", np. w przypadku umieszczenia PeaZip na dysku zewnętrznym, pendrivie. Dzięki za zwrócenie uwagi - poprawione.

@adamwiacek
O kopii przyrostowej nie myślałem. Chodź to ciekawe spostrzeżenie, nad którym można się zastanowić :) Co do przywracania backupu można by zapewne zrobić skrypt w drugą stronę, lecz ścieżki są takie, ze można je wskazać ręcznie i po prostu wypakować archiwum. Choć skrypt również ułatwiłby sprawę.

M@ster   17 #8 08.09.2013 08:52

@arlid
Proszę bardzo:

%exe7zip% u -t7z -mx9 -m0=LZMA2 -mhe -x@%type%\exclude.txt -ms=off -u- -up0q3r2x2y2z0w2!%outfn% %type%

Ten śmieszny ciąg z dwójkami za to odpowiada - odsyłam do dokumentacji 7zipa, od razu powiem że to jest niezły mind fuck żeby to ogarnąć ;)

Aha, to nie jest kopia przyrostowa, mówiłem o różnicowej, a to nie to samo.

M@ster   17 #9 08.09.2013 08:55

Sorki, ucięło mi linię, jeszcze raz:

%exe7zip% u -t7z -mx9 -m0=LZMA2 -mhe -x@%type%\exclude.txt -ms=off -u- -up0q3r2x2y2z0w2!%outfn% %type%\backup.7z @%type%\filelist.txt > %logfn%

outfn to plik wynikowy
type to powiedzmy podfolder
logfn to plik loga

Axles   17 #10 08.09.2013 09:46

Co kto lubi, mnie szkoda czasu tak sobie komplikować życie :) Wolę soft do tego stworzony chociażby Hotzlotowe Acronis True Image, który posiada także opcje których darmo szukać w nawet najbardziej ukrytych opcjach 7zip, albo nawet program Cobian Backup.

  #11 08.09.2013 11:59

ehh po co sie tak meczyc ?
moj sposob co prawda brak pakowania plikow, ale backup od razu jest w innym miejscu:
winscp + 2 pliki (oczywiscie bez /* i */)
winscp.bat
/*
@echo off;
e:/bin/winscp/winscp.exe /console /script=winscp.txt
pause
*/

oraz winscp.txt
/*
open {user}@{serwer} //oczywiscie na kluczach
synchronize remote e:/home/dokumenty /home/backup/dokumenty
close
exit
*/

M@ster   17 #12 08.09.2013 12:08

@Axles
Pokaż mi soft który robi backup różnicowy w postaci plików wynikowych 7z (w dodatku z algorytmem LZMA2, nie 1 ;) Zaręczam Ci że nie znajdziesz. Dla mnie podstawą backupu jest wiedza nt. tego co się dokładnie dzieje oraz prostota - dlatego jak dla mnie odpadają wszystkie softy które generują pliki w jakimś tam swoim tylko znanym formacie. W przypadku awarii obsługa formatu 7z jest dość powszechna, w momencie gdy masz jakiś zamknięty format jesteś zdany na jeden i tylko jeden soft.

Ja wiem że niektórych może porażać konsolowatość ;) tego rozwiązania ale w pełni rozumiem autora wpisu dlaczego wybrał takie a nie inne rozwiązanie. Z tego samego powodu co niektórzy wolą grzebać w konsoli Linuxa niż coś wyklikać na Windowsie (chociaż w tym wypadku wolę to drugie ;)).

zoso71   9 #13 08.09.2013 12:30

@Scorpions.B - a to wybacz, źle odczytałem intencje ;-)

Axles   17 #14 08.09.2013 14:46

Wspomniany program robi różnicowy backup i kompresuje do 7z algorytmem LZMA (do czego ci potrzebna wersja druga o ile taka istnieje bo nic o niej nie znalazłem) przecież LZMA to standard.
"Dla mnie podstawą backupu jest wiedza nt. tego co się dokładnie dzieje oraz prostota - dlatego jak dla mnie odpadają wszystkie softy które generują pliki w jakimś tam swoim tylko znanym formacie."
Ok jeśli z pierwszą częścią zdania się zgodzę to drugiej trochę zaprzeczasz bo właśnie prostota to TE softy które cały proces ułatwiają.

M@ster   17 #15 08.09.2013 15:04

@Axles
[[Ok jeśli z pierwszą częścią zdania się zgodzę to drugiej trochę zaprzeczasz bo właśnie prostota to TE softy które cały proces ułatwiają.]]

Pod warunkiem że już wiesz którego chcesz używać a nie stoisz przed procesem instalacji/testowanie 20 z nich ;)

dzikiwiepsz   12 #16 08.09.2013 15:18

jak dla mnie za dużo zabawy już lepiej zainstalować program skonfigurować i nie ma problemów :)

sgj   11 #17 08.09.2013 16:50

@arlid "PeaZip dlatego, że nie znalazłem wersji portable 7-zip."

Konsolowa wersja 7-zip jest do pobrania na stronie projektu jako zwykłe archiwum. Z kolei paczka instalacyjna jest po instalacji w pełni przenośna. Już nie wspominając o wersji z Portable Apps.

arlid   14 #18 08.09.2013 19:23

@M@ster
Dzięki :)

@sgj
Tego nie wiedziałem ;) Sprawdziłem, ze są tylko wersje instalacyjne do pobrania i nie zagłębiałem się aż tak dalej w temacie. W takim razie można użyć także 7-zipa.

  #19 09.09.2013 09:31

Do robienia backupu całego dysku nigdy nie zawiódł mnie w pełni darmowy Redo Backup, choć zdarzało się na nowszych kompach, że trzeba było przestawiać UEFI do trybu Legacy BIOS, by CD mógł zabootować (drobna niedogodność).

Robienie kopii na inny dysk lub partycję, które są podłączone lokalnie do tego samego kompa, można odradzić. Jak wpadnie jakiś wirus typu Sality, to i tak pozaraża wszystkie pliki exe oraz skompresowane (przy założeniu, że używamy systemu Windows).

Wniosek prosty: znów najlepszym combo okazują się tar.gz+rsync na zdalny serwer.

gilbert3   5 #20 09.09.2013 09:54

Tworzenie takich skryptów ma to do siebie, że doskonale uczy sprawnego posługiwania się wierszem polecenia. Kiedyś za czasów DOS-a sam robiłem takie skrypty, w tej chwili tych programów jest tyle, że się "nie chce". Dobra robota kolego.

997   5 #21 09.09.2013 12:09

Jakiś czas temu dla jednej firmy konfigurowałem server Bacula i jak dla mnie to nie ma fajniejszego rozwiązania - może być jedynie problem z konfigami ale po krótkiej lekturze wszystko ładnie śmiga. Patrząc na powyższy wpis mam jednak wrażenie, że autor by problemu nie miał więc polecam się zapoznać :)

Murphy   3 #22 09.09.2013 17:35

Na Windows system zrzucałem ImageX'em z przyrostowymi backupami (płyta/usb botowalna z WinPE). Do zrzucania samych plików dobrze sprawdza się Cobian Backup albo zabawa z 7-zip i skryptami batch jak ktoś ma do tego czas i cierpliwość.

Na Linuksie używałem Partimage z płyty SystemRescueCD. Do archiwizacji pojedyńczych plików najlepiej mi się sprawdził DAR lub BAR (taka odmiana TAR'a ale ciut lepsza jak ktoś nie używa taśmy jako medium zapisu).

arlid   14 #23 10.09.2013 07:30

@997
Dzięki, poczytam na ten temat :)

  #24 28.05.2014 08:33

FERROBACKUP - i po krzyku.
Darmowa wwrsja dla uzytkownika domowego do 2 stanowisk.