Categorieën
Windows-DOS

Volledige Backup

Een batchfile voor een volledige systeem backup

Doel

We maken een batchfile, waarmee een WindowsImageBackup van het systeem wordt gemaakt op een tweede interne of externe harde schijf, waarna de PC vanzelf afsluit.

Aanleiding/overwegingen

Bij veel mensen schiet het maken van backups van bestanden er bij in. Een duur programma dat niet werkt, of het is te omslachtig, of de discipline ontbreekt. Als de harde schijf of SSD het een keer begeeft, heb je een probleem. Hoe je een back-up terug moet zetten is misschien nog een hele kunst, maar op zijn minst kan je ervoor zorgen dat alles met regelmaat bewaard wordt. Voor velen gaat dat het makkelijkst naar een externe harde schijf die via USB wordt aangesloten. Voordeel dat je die mee kunt nemen naar een andere locatie. Op een tweede interne harde schijf is ook een mogelijkheid. Het mooist is het wanneer je aan het eind van de dag gewoon naar bed kan gaan met een dubbelklik op de snelkoppeling voor FullBackup, waarna een volledige back-up gemaakt wordt en als dat klaar is de PC vanzelf afsluit.

Voorbereiding:

  • Check of de computer een logische herkenbare computernaam heeft.
    • Typ ‘Informatie’ in het zoekvak
    • Klik op ‘Informatie over uw pc’
    • Zie de ‘Apparaatnaam’
    • Desgewenst te wijzigen door iets lager ‘Naam van pc wijzigen’ te selecteren. Maak er één woord van of gebruik een verbindingsstreepje. b.v. “PCMERK-PIET”. Goed te onderscheiden van andere PC’s of notebooks in huis.
  • Gebruik een externe USB schijf met een (resterende) capaciteit die groter is dan de inhoud van de systeemschijf in de computer. (meestal C:), of gebruik een tweede interne harde schijf voor de backup.
  • Als er meerdere USB-sticks of harde schijven zijn aangesloten, kan de back-up schijf in de toekomst wel eens een andere schijfletter krijgen. We moeten daarom steeds kunnen achterhalen wat de schijfletter van de back-up schrijf is.

Uitvoering

  • Sluit de schrijf aan en kijk welke schijfletter hieraan wordt toegekend.
    (In het voorbeeld gebruik ik E: vervang dat voor de juiste letter.)
  • Eenmalig:
    Open een DOS venster en maak de directory waarin de back-up geplaatst zal worden met het volgende commando:
mkdir E:\WindowsImageBackup
  • Ik plaats de voorbeeld batchfiles standaard in C:\ICTWebUtils\Batch
  • Download het voorbeeld bestand FullBackup.txt en hernoem de extensie .txt tot .bat.
  • Open het bestand in Notepad en pas het aan waar nodig.
  • Het moet met Administrator rechten worden uitgevoerd.
  • Na het maken van de back-up wordt de PC vanzelf afgesloten.
@Echo off
::: Create WindowsImageBackup
::: Jan Peppink - https://ict.peppink.nl
::: Prepare :::::::::::::::::::::::::::::::::::::::::::::::
::: %~0   - Remove any surrounding quotes (")
::: %~f0  - expands to fully qualified pathname with filename.
::: %~d0  - expands to drive letter
::: %~p0  - expands to path
::: %~n0  - expands to filname without extension
 Set ThisBatch=%~0
 Set LogFile=%~d0%~p0%~n0.log
 Set OldLogFile=%~d0%~p0%~n0-old.log 
 if exist "%LogFile%" Echo Save %LogFile% to %OldLogFile%
 if exist "%LogFile%" Move /y "%LogFile%" "%OldLogFile%" >nul

::: Start new empty logfile :::::::::::::::::::::::::::::::
 Echo %date% %time:~0,5% ::: Start %ThisBatch%
 Echo %date% %time:~0,5% ::: Start %ThisBatch% > %LogFile%

::: Set Environment :::::::::::::::::::::::::::::::::::::::
 Set BackupDir=WindowsImageBackup\%computername%
 ::: BackupDisk (Set default = DISKNOTFOUND )
 Set BackupDisk="DISKNOTFOUND"
 ::: Dynamic Setting of USB disk where %BackupDir% is found.
 For %%X in (D E F G H I J K L M N O) do if exist %%X:\WindowsImageBackup Set BackupDisk=%%X:
 if %BackupDisk%=="DISKNOTFOUND" Goto NoDisk

:::: Color First Background Second ForeGround
::: 0 = Black	 	8 = Gray
::: 1 = Blue		9 = Light Blue
::: 2 = Green		A = Light Green
::: 3 = Aqua		B = Light Aqua
::: 4 = Red 		C = Light Red
::: 5 = Purple	 	D = Light Purple
::: 6 = Yellow		E = Light Yellow
::: 7 = White		F = Bright White
 Set MyColor=0E
 Set MyWarningColor=CE
 Color %MyColor%

::: Start to do something :::::::::::::::::::::::::::::::::
::: Remove WindowsImageBackup from BackupDisk.
Title %date% %time:~0,5% Remove old WindowsImageBackup from %BackupDisk%
 Echo %date% %time:~0,5% Start to remove old image from %BackupDisk%\%BackupDir%
 Echo %date% %time:~0,5% Start to remove old image from %BackupDisk%\%BackupDir% >> %LogFile%
 if exist %BackupDisk%\%BackupDir% rmdir /s/q %BackupDisk%\%BackupDir%

::: Create NEW System Windows Image to BackupDisk       :::
Title %date% %time:~0,5% Create new WindowsImageBackup on %BackupDisk%
 Echo %date% %time:~0,5% Create new WindowsImageBackup to %BackupDisk%\%BackupDir%
 Echo %date% %time:~0,5% Create new WindowsImageBackup to %BackupDisk%\%BackupDir% >> %LogFile%
 Wbadmin start backup -backupTarget:%BackupDisk% -allCritical -quiet
 If %ERRORLEVEL% GTR 0 Goto Error
Goto End

::: We have a problem :::::::::::::::::::::::::::::::::::::
:Error
 Color %MyWarningColor%
 Echo %date% %time:~0,5% Error for WindowsImageBackup to %BackupDisk%\%BackupDir%
 Echo %date% %time:~0,5% Error for WindowsImageBackup to %BackupDisk%\%BackupDir% >> %LogFile%
 Echo When clean up is needed (run as Administrator):
 Echo wbadmin delete catalog
 Echo vssadmin delete shadows /all (or Rother options /for=c: of /oldest etc)
Goto Quit

:NoDisk
 Color %MyWarningColor%
 Echo No BackupDisk found or directory \WindowsImageBackup is missing.
 Echo No BackupDisk found or directory \WindowsImageBackup is missing. >> %LogFile%
 Echo Connect disk or create directory WindowsImageBackup on it and restart %0.
Goto Quit

::: We are done :::::::::::::::::::::::::::::::::::::::::::
:End
 Echo %date% %time:~0,5% ::: Ready is Case for %0. Shuttting down.
 Echo %date% %time:~0,5% ::: Ready is Case for %0. Shuttting down. >> %LogFile%
 shutdown /s /f /t 120 /c "Close all your programs. I will shutdown PC within 2 minutes !!!"

:Quit
 Echo Hit any key to quit . . . & pause >nul
::: That's All ::::::::::::::::::::::::::::::::::::::::::::

Toelichting bij de regels

  • 01-19: Voor standaard begin regels verwijs ik naar eerder gegeven sjabloon batch file.
  • 20-21: We stellen een variabele in voor de backup. Standaard map voor het plaatsen van windows image is de map WindowsImageBackup, met daaronder een map met de naam van de PC.
  • 22-25: We beginnen de variabele BackupDisk met de tekst “DISKNOTFOUND”. Als deze in de navolge4nde regels niet vervangen wordt door een schijf letter, is er geen schrijf gevonden als we daar later op checken. In regel 25 wordt in een lus alle driver letters van D t/m O geprobeerd om te kijken of daar een map WindowsImageBackup bestaat. Zo ja, dan wordt de eerst gevonden letter als BackupDisk gebruikt.
  • 26: Als de inhoud van BackupDisk variabele nu nog DISKNOTFOUND is, dan is in voorgaande actie geen schijf gevonden en springen we naar het label NoDisk in regel 66.
  • 28-39: Hier de standaard instellingen voor te gebruiken kleur. MyColor wordt gebruikt voor de normale output. MyWarningColor wordt gebruikt indien sprake is van een error (regel 58 en 67).
  • 41-45: We melden in de titelbalk, op het scherm en in de logfile wat we gaan doen. In regel 46 checken we of de map WindowsImageBackup\Computernaam bestaat en verwijderen deze met alle onderliggende inhoud. Zo bewaren we slechts 1 exemplaar van de back-up. Deze wordt met datum geplaatst. Als we de oude back-up niet eerst zouden verwijderen, zou de schrijf snel vol raken.
  • 48-52 We melden in de titelbalk, op het scherm en in de logfile wat we gaan doen. In regel 52 wordt de systeem backup gemaakt.
  • 53: Als er sprake is van een fout, dan wordt dit middels een errorlevel afgevangen. Indien 0 is het foutloos geëindigd. Indien groter dan 0 springen we naar het label Error in regel 57.
  • 54: Als het errorlevel niet groter dan 0 is, springen we naar het label End in regel 74.
  • 56-64: Als sprake is van een fout, dan stellen we de waarschuwingskleur in en melden dit op scherm en in logfile. Ook volgt er nog wat Help info om mogelijk oorzaken van de back-up fout weg te nemen. Daarna springen we naar het label Quit, zodat de batchfile beëindigd wordt zonder de PC uit te schakelen. Daardoor blijft de melding staan, die anders onopgemerkt zou blijven.
  • 66-71: In het geval de backupschijf in regel 25 niet wordt gevonden, komen we hier terecht, stellen we de waarschuwingskleur in en melden het probleem op scherm en in logfile. Daarna springen we naar het label Quit, zodat de batchfile beëindigd wordt zonder de PC uit te schakelen.
  • 73-76: Als de backup normaal beëindigd is, komen we bij het label End. We melden het einde van het verhaal op scherm en in logfile.
  • 77: We geven we het shutdown commando met opties om na 120 seconden de PC uit te schakelen. Daarbij verschijnt een melding op het scherm met de boodschap “Close all your programs. I will shutdown PC within 2 minutes !!!” het uitschakelen van de PC kan nog voorkomen worden door binnen die twee minuten het gegeven shutdown commando ongedaan te maken. Geef daartoe in een nieuw te openen DOS venster het commando: shutdown -a
  • 79-80: Tot slot wordt met het pause commando gewacht tot een toets wordt ingedrukt. Anders zou het DOS venster wanneer het door dubbelklik in de Windows Verkenner is gestart aan het eind vanzelf sluiten.
    >nul zorgt ervoor dat de standaard melding “Press any key to continue . . .” niet wordt getoond. We zijn immers klaar en er wordt niets meer gecontinueerd. In plaats daarvan komt eerst de tekst “Hit any key to quit . . .” en wordt na het & teken vervolgens het pause commando uitgevoerd.
  • 81: ::::: That’s All ::::::::::::::::::::::::::::::::::::::::

Schermuitvoer

Schermuitvoer van de start van FullBackup.bat

Tips

Het back-up commando moet met Administrator bevoegdheden worden uitgevoerd. Om dat niet telkens te hoeven kiezen doen we het volgende:

  • Maak een snelkoppeling op het Bureaublad. Klik daarvoor met rechtermuistoets op FullBackup.bat en selecteer “Kopiëren naar” en kies vervolgens “Bureaublad (snelkoppeling maken)”
  • Pas de eigenschappen aan om als Administrator uit te voeren. Klik daarvoor met rechtermuistoets op de gemaakte snelkoppeling.
  • Selecteer “Geavanceerd” en zet vinkje bij “Als administrator uitvoeren”, zoals in onderstaand plaatje is te zien.
Aanpassen eigenschappen
  • Voortaan volstaat het dubbelklikken van de snelkoppeling om de Volledige systeem back-up uit te voeren, waarna de PC automatisch uitschakelt.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *