Skrypt wsadowy systemu Windows do tworzenia kopii zapasowych danych

Użytkownicy komputerów, którzy dorastali z zaawansowanymi komputerami Mac i Windows, mogą nie być tego świadomi, ale kiedyś, dawno temu, wszystkie komputery osobiste były sterowane za pomocą interfejsu wiersza poleceń. Tak, to niezgrabne okno poleceń na twoim komputerze z systemem Windows było dosłownie jedynym sposobem, w jaki większość ludzi kiedykolwiek wchodziła w interakcję z komputerem. Interfejsy wiersza poleceń w dużej mierze opierały się na małych programach zwanych „skryptami”, które były zbiorami poleceń systemu operacyjnego używanych do wykonywania typowych zadań.

Chociaż graficzne interfejsy użytkownika dzisiejszych komputerów są o lata świetlne bardziej wyrafinowane i łatwe w użyciu niż stare wiersze poleceń, nadal istnieją zastosowania starszej metody sterowania komputerem. Jedną z najczęstszych i najlepiej dopasowanych aplikacji do skryptu wiersza poleceń jest tworzenie kopii zapasowych danych. Skrypty wiersza poleceń można zautomatyzować i uruchamiać w dowolnym momencie bez interakcji człowieka i mają niewiele ograniczeń. Co najlepsze – są wbudowaną częścią systemu operacyjnego Windows.

Dlaczego skrypty wiersza poleceń?

Po co używać skryptu wiersza poleceń, skoro istnieją zarówno komercyjne, jak i bezpłatne programy do tworzenia kopii zapasowych? Cóż, skrypty wiersza poleceń mają wiele unikalnych zalet. Oto kilka z nich:

  • Natywne polecenia : Czy jest lepszy sposób na tworzenie kopii zapasowych danych niż korzystanie z funkcji udostępnianych przez program tworzący dane? Niezależnie od tego, czy jest to sam system operacyjny za pomocą prostego polecenia kopiowania pliku, czy polecenia bazy danych w celu utworzenia odtwarzalnego pliku binarnego, program źródłowy wie najlepiej, jak wykonać kopię zapasową.
  • Najwyższa kontrola : Ponieważ skrypt wiersza poleceń wykonuje prostą procedurę krok po kroku, wiesz dokładnie, co się dzieje i możesz łatwo zmodyfikować zachowanie.
  • Szybko : Ponieważ wszystko jest natywnym poleceniem, nic nie podlega interpretacji. Ponownie, używasz poleceń dostarczonych przez sam program, więc narzut jest ograniczony do minimum.
  • Potężny : Jeszcze nie widziałem zadania tworzenia kopii zapasowej, którego nie można wykonać za pomocą skryptu wiersza poleceń… i zrobiłem kilka dziwnych rzeczy. Chociaż może być konieczne przeprowadzenie pewnych badań i prób i błędów, jeśli masz naprawdę wyjątkowe potrzeby, zazwyczaj wbudowane funkcje i cechy języka skryptowego, którego używasz, są więcej niż wystarczające.
  • Bezpłatne i elastyczne : Oczywiście skrypt wiersza poleceń nic nie kosztuje (poza czasem na jego opracowanie), więc możesz skopiować swoje skrypty na dowolną liczbę komputerów i systemów przy niewielkim lub zerowym czasie lub kosztach. Porównaj to z kosztem zakupu licencji na oprogramowanie do tworzenia kopii zapasowych na kilku serwerach i/lub komputerach stacjonarnych.

Szybki przegląd skryptu wsadowego kopii zapasowej

Większość ludzi nigdy nie nauczyła się używać skryptów wiersza poleceń i jest to uważane za „czarną sztukę”. Jednak w rzeczywistości jest to dość prosta rzecz do nauczenia. Aby zademonstrować moc wiersza poleceń, udostępniam prosty skrypt wsadowy systemu Windows, którego można użyć do tworzenia kopii zapasowych ważnych danych. Ten konfigurowalny i konfigurowalny skrypt nie wymaga żadnej wiedzy (ani chęci do nauki) na temat języka skryptów wsadowych systemu Windows, ale jeśli zdecydujesz, że chcesz dowiedzieć się więcej o skryptach wsadowych systemu Windows, uznasz ten skrypt za dobry początek .

Co robi skrypt kopii zapasowej:

  1. Tworzy pełne lub codzienne przyrostowe (definicję poniżej) kopie zapasowe plików i folderów określonych w osobnym konfiguracyjnym pliku tekstowym (patrz poniżej).
    • Gdy folder zostanie nazwany, tworzona jest kopia zapasowa tego folderu i wszystkich podfolderów.
    • Gdy plik zostanie nazwany, tworzona jest kopia zapasowa tylko tego pliku.
  2. Kompresuje (zipuje) kopie zapasowe plików. Po skopiowaniu wszystkich plików, które mają zostać zarchiwizowane, są one kompresowane w celu zaoszczędzenia miejsca. Aby to zadziałało, w systemie musi być zainstalowany 7-Zip.
  3. Daty skompresowanego pliku i przenieść go do lokalizacji przechowywania. Po skompresowaniu plików kopii zapasowej powstałe archiwum otrzymuje nazwę pliku zgodną z bieżącą datą, a następnie jest przenoszone do skonfigurowanej lokalizacji przechowywania, takiej jak dysk zewnętrzny lub lokalizacja sieciowa.
  4. Oczyszcza po sobie. Po zakończeniu wszystkich zadań skrypt wsadowy czyści wszystkie utworzone przez siebie pliki tymczasowe.

Wymagania:

Windows 2000/XP/2003/Vista lub nowszy

7-Zip (bezpłatny)

Plik konfiguracyjny:

Plik konfiguracyjny to po prostu plik tekstowy, który zawiera pliki i foldery do wykonania kopii zapasowej, wpisany jeden element kopii zapasowej w wierszu. Ten plik musi mieć nazwę „BackupConfig.txt” i znajdować się w tym samym folderze, co skrypt kopii zapasowej. Oto przykład pliku BackupConfig.txt (uwaga, znak „#” w pierwszym wierszu wskazuje, że wiersz jest komentarzem; komentarze są zawsze ignorowane podczas działania skryptu):

# Wprowadź nazwy plików i folderów, po jednym w wierszu.

C:Documents and SettingsJason FaulknerDesktop C:Documents and SettingsJason FaulknerMoje dokumentyWażne pliki C:ScriptsBackupScript.bat

Powyższy przykład wykonałby kopię zapasową pulpitu użytkownika systemu Windows Jasona Faulknera (i wszystkich folderów na pulpicie), folderu o nazwie „Ważne pliki” w Moich dokumentach (i wszystkich folderów w „Ważnych plikach”) oraz pliku „BackupScript.bat” w środku katalog C:Scripts.

Rodzaje kopii zapasowych:

  • Pełna kopia zapasowa: Kopia zapasowa obejmuje pełną kopię wszystkich plików i folderów (w tym podfolderów).
  • Przyrostowa kopia zapasowa: Gdy udostępniony jest folder, tylko pliki utworzone lub zmodyfikowane w bieżąca data

    kopię zapasową. Gdy plik jest dostarczony, jego kopia zapasowa jest zawsze tworzona, niezależnie od tego, kiedy został zmodyfikowany.

Skrypt wsadowy systemu Windows do tworzenia kopii zapasowych danych

Chcę podkreślić, że ten skrypt jest bardzo prosty, ponieważ wszystko, co robi, to tworzenie kopii zapasowych za pomocą prostej kopii pliku. Istnieje kilka opcji konfiguracji, które można ustawić:

  • Miejsce przechowywania kopii zapasowej, w którym przechowywane są wynikowe skompresowane pliki kopii zapasowej.
  • Dzień tygodnia, w którym wykonywana jest pełna kopia zapasowa (każdy inny dzień spowodowałby uruchomienie kopii przyrostowej).
  • Lokalizacja, w której 7-Zip jest zainstalowany na twoim komputerze. Skrypt jest automatycznie ustawiany tak, aby wyglądał w domyślnej lokalizacji.

Jeśli masz jakieś sugestie lub prośby o nowe funkcje, prosimy o komentarz poniżej. Naprawdę chciałbym zrobić kolejny artykuł do tego postu, który zawiera zaktualizowany skrypt oparty na danych wejściowych czytelnika. Jeśli potrzebujesz instrukcji, jak „używać” tego skryptu lub skonfigurować zaplanowane zadanie, spójrz na linki poniżej źródła skryptu.

Bez dalszych ceregieli, oto jest:

Notatka: Ponieważ cytaty nie wyświetlają się poprawnie poniżej (i w rezultacie mogą zepsuć skrypt), pod skryptem zamieściłem zwykły link tekstowy, którego możesz użyć, aby uzyskać dokładne źródło do kopiowania.

@ECHO OFF REM BackupScript REM Wersja 1.01, Aktualizacja: 2008-05-21 REM Autor: Jason Faulkner (articles[-at-]132solutions.com) REM Wykonuje pełne lub przyrostowe kopie zapasowe folderów i plików skonfigurowanych przez użytkownika. Użycie REM--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Opcje konfiguracji--- REM Lokalizacja folderu, w którym chcesz przechowywać archiwum kopii zapasowej. REM Ten folder musi istnieć. Nie umieszczaj znaku „” na końcu, zostanie on dodany automatycznie. REM Możesz wprowadzić ścieżkę lokalną, literę dysku zewnętrznego (np. F:) lub lokalizację sieciową (np. \serverbackups) SET BackupStorage=C:Backup REM W którym dniu tygodnia chcesz wykonać pełną kopię zapasową? REM Wprowadź jedną z następujących opcji: niedz, pon, wt, śr, czw, pt, sob, * REM W każdym dniu tygodnia innym niż podany poniżej zostanie uruchomiona przyrostowa kopia zapasowa. REM Jeśli wpiszesz „*”, za każdym razem zostanie uruchomiona pełna kopia zapasowa. SET FullBackupDay=* REM Lokalizacja, w której na komputerze jest zainstalowany 7-Zip. REM Domyślnie znajduje się w folderze „7-Zip” w katalogu Program Files. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +----------------------------------------------------- --------------------------------+ REM | Nie zmieniaj niczego poniżej, chyba że wiesz, co robisz. | REM +------------------------------------------------ -----------------------+ REM Zmienne użycia. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%kopia zapasowa SET filBackupConfig=BackupConfig.txt Walidacja REM. IF NOT EXIST %filBackupConfig% ( ECHO Nie znaleziono pliku konfiguracyjnego, brakuje: %filBackupConfig% GOTO End ) IF NOT EXIST "%exe7Zip%" ( ECHO 7-Zip nie jest zainstalowany w lokalizacji: %dir7Zip% ECHO Zaktualizuj katalog, w którym 7-Zip jest zainstalowany GOTO End ) Zmienne kopii zapasowej REM. FOR /f "tokens=1,2,3,4 delims=/" %%a IN ('data /t') ZRÓB ( SET DayOfWeek=%%a SET NowDate=%%d-%%b-%%c SET FileDate=%%b-%%c-%%d ) IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek% IF /i {%FullBackupDay%}=={%DayOfWeek%} ( SET txtBackup =Pełny zestaw swXCopy=/e) ELSE (SET txtBackup=Przyrostowy zestaw swXCopy=/s /d:%DataPliku%) ECHO Rozpoczęcie kopiowania plików. IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) ZRÓB ( SET Current=%%~A IF NOT EXIST "!Bieżący! " ( BŁĄD ECHO! Nie znaleziono: !Bieżący! ) ELSE ( Kopiowanie ECHO: !Bieżący! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM Określ, czy wpis jest plikiem lub katalogiem. IF "%%~xA"=="" ( Katalog REM. XCOPY "! Bieżący!" "! Miejsce docelowe!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE ( Plik REM. COPY /v /y "!Bieżący!" "!Miejsce docelowe!") ) ) ECHO Zakończono kopiowanie plików. ECHO. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Jeśli plik kopii zapasowej istnieje, usuń go na rzecz nowego pliku. IF EXIST "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO Kompresowanie kopii zapasowych plików. (Nowe okno) REM Kompresuj pliki przy użyciu 7-Zip w procesie o niższym priorytecie. START "Kompresowanie kopii zapasowej. NIE ZAMYKAJ" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO Zakończono kompresowanie kopii zapasowych plików. ECHO. ECHO Sprzątanie. JEŚLI ISTNIEJE „%dirTempBackup%” RMDIR /s /q „%dirTempBackup%” ECHO. :Koniec ECHO zakończony. ECHO. ENDLOCAL

Źródło zwykłego tekstu jest dostępne tutaj: kopia zapasowa

Jeśli potrzebujesz pomocy w rozpoczęciu implementacji tego skryptu, oto kilka linków, które mogą Ci pomóc:

  • Jak utworzyć plik wsadowy
  • Jak utworzyć zaplanowane zadanie systemu Windows

Jest to ten sam skrypt, którego używam do codziennego tworzenia kopii zapasowych komputera (oczywiście z kilkoma modyfikacjami), więc wiem, że działa bardzo dobrze. Mam nadzieję, że okaże się to przydatne.

Cieszyć się!