Windows Batch Script til sikkerhedskopiering af data

Computerbrugere, der er vokset op med avancerede Mac- og Windows-computere, er måske ikke klar over det, men engang for længe siden blev alle personlige computere styret ved hjælp af en kommandolinjegrænseflade. Ja, den klodsede kommandoboks på din Windows-maskine plejede at være bogstaveligt talt den eneste måde, de fleste mennesker nogensinde interagerede med en computer. Kommandolinjegrænseflader var stærkt afhængige af små programmer kaldet 'scripts', som var samlinger af operativsystemkommandoer, der blev brugt til at udføre almindelige opgaver.

Selvom de grafiske brugergrænseflader på nutidens pc'er er lysår mere sofistikerede og nemme at bruge end de gamle kommandolinjer, er der stadig brug for den ældre metode til at styre din computer. En af de mest almindelige og velegnede applikationer til et kommandolinjescript er sikkerhedskopiering af data. Kommandolinjescripts kan automatiseres til at køre til enhver tid uden menneskelig interaktion og har få begrænsninger. Det bedste af det hele - de er en indbygget del af Windows-operativsystemet.

Hvorfor kommandolinjescripts?

Hvorfor bruge et kommandolinjescript, når der er både kommercielle og gratis sikkerhedskopieringsprogrammer derude? Nå, kommandolinjescripts har en række unikke fordele. Her er et par af dem:

  • Indfødte kommandoer : Hvilken bedre måde at sikkerhedskopiere data på end ved at bruge de funktioner, der stilles til rådighed gennem programmet, der opretter dataene? Uanset om dette er selve operativsystemet via en simpel filkopieringskommando eller en databasekommando til at producere en gendanbar binær fil, ved kildeprogrammet bedst, hvordan det sikkerhedskopieres.
  • Ultimativ kontrol : Da et kommandolinjescript følger en simpel trin-for-trin procedure, ved du præcis, hvad der sker, og du kan nemt ændre adfærden.
  • Hurtig : Da alt er en indfødt kommando, er intet underlagt fortolkning. Igen bruger du kommandoer leveret af selve programmet, så overhead holdes på et minimum.
  • Magtfulde : Jeg har endnu ikke set en backup-opgave, som ikke kan udføres gennem et kommandolinjescript... og jeg har lavet nogle funky ting. Selvom du måske skal lave nogle undersøgelser og prøve og fejle, hvis du har virkelig unikke behov, er de indbyggede funktioner og funktioner i det scriptsprog, du bruger, typisk mere end tilstrækkelige.
  • Gratis og fleksibel : Det er klart, at et kommandolinjescript ikke koster noget (uden for tiden til at udvikle det), så du kan kopiere dine scripts til et hvilket som helst antal maskiner og systemer med lidt eller ingen tid eller omkostninger. Sammenlign dette med omkostningerne ved at købe licenser til backup-software på flere servere og/eller stationære maskiner.

Et hurtigt overblik over Backup Batch Script

De fleste mennesker har aldrig lært at bruge kommandolinjescripting, og det betragtes som noget af en "sort kunst". Men det er faktisk en ret simpel ting at lære. For at demonstrere kraften i kommandolinjen giver jeg et simpelt Windows batch-script, som du kan bruge til at sikkerhedskopiere dine vigtige data. Dette konfigurerbare og tilpasselige script kræver ikke nogen viden (eller villighed til at lære) om Windows batchscriptsprog, men hvis du beslutter dig for at lære mere om Windows batchscripting, vil du finde dette script som et godt udgangspunkt. .

Hvad sikkerhedskopieringsscriptet gør:

  1. Opretter fulde eller daglige trinvise (se nedenfor for en definition) sikkerhedskopier af filer og mapper, du angiver i en separat konfigurationstekstfil (se nedenfor).
    • Når en mappe er navngivet, sikkerhedskopieres den mappe og alle undermapper.
    • Når en fil navngives, sikkerhedskopieres kun den fil.
  2. Komprimerer (zipper) de sikkerhedskopierede filer. Når alle filer, der skal sikkerhedskopieres, er kopieret, komprimeres de for at spare plads. Det kræves, at 7-Zip er installeret på dit system, for at dette fungerer.
  3. Daterer den komprimerede fil og flytter den til en lagerplacering. Efter at backupfilerne er komprimeret, får det resulterende arkiv et filnavn i henhold til den aktuelle dato og flyttes derefter til en konfigureret lagerplacering, såsom et eksternt drev eller netværksplacering.
  4. Rydder op efter sig selv. Når alle opgaver er udført, rydder batchscriptet op i alle de midlertidige filer, det oprettede.

Krav:

Windows 2000/XP/2003/Vista eller nyere

7-Zip (det er gratis)

Konfigurationsfil:

Konfigurationsfilen er simpelthen en tekstfil, som indeholder filer og mapper, der skal sikkerhedskopieres, indtastet et backupelement pr. linje. Denne fil skal hedde "BackupConfig.txt" og være placeret i samme mappe som backup-scriptet. Her er et eksempel på en BackupConfig.txt-fil (bemærk, "#"-tegnet på den første linje angiver, at linjen er en kommentar; kommentarer ignoreres altid, når scriptet kører):

# Indtast fil- og mappenavne, et pr. linje.

C:Dokumenter og indstillingerJason FaulknerDesktop C:Dokumenter og indstillingerJason FaulknerMine dokumenterVigtige filer C:ScriptsBackupScript.bat

Eksemplet ovenfor ville sikkerhedskopiere Windows-brugeren Jason Faulkners skrivebord (og alle mapper på skrivebordet), mappen kaldet "Vigtige filer" inde i Mine dokumenter (og alle mapper inde i "Vigtige filer") og filen "BackupScript.bat" inde mappen C:Scripts.

Typer af sikkerhedskopier:

  • Fuld backup: En komplet kopi af alle filer og mapper (inklusive undermapper) er inkluderet i sikkerhedskopien.
  • Inkrementel backup: Når en mappe leveres, er det kun filer, der er oprettet eller ændret på nuværende dato er

    sikkerhedskopieret. Når en fil leveres, bliver den altid sikkerhedskopieret, uanset hvornår den blev ændret.

Data Backup Windows Batch Script

Jeg vil gerne understrege, at dette script er meget grundlæggende, da alt det gør er at lave sikkerhedskopier ved at bruge en simpel filkopi. Der er nogle konfigurationsmuligheder, du kan indstille:

  • Sikkerhedskopieringspladsen, hvor de resulterende komprimerede sikkerhedskopieringsfiler er gemt.
  • Den dag i ugen, hvor den fulde backup køres (enhver anden dag vil køre en trinvis backup).
  • Placering af hvor 7-Zip er installeret på din computer. Scriptet indstilles automatisk til at se på standardplaceringen.

Hvis du har forslag eller funktionsanmodninger, bedes du kommentere nedenfor. Jeg ville virkelig elske at lave en opfølgningsartikel til dette indlæg, som indeholder et opdateret script baseret på læserinput. Hvis du har brug for instruktioner om, hvordan du "bruger" dette script eller opsætter en planlagt opgave, så tag et kig på linkene under scriptkilden.

Uden videre er den her:

Bemærk: Da citaterne ikke vises korrekt nedenfor (og som et resultat kan ødelægge scriptet), har jeg inkluderet et almindeligt tekstlink under scriptet, som du kan bruge til at få en nøjagtig kilde at kopiere fra.

@ECHO OFF REM BackupScript REM Version 1.01, Opdateret: 2008-05-21 REM Af Jason Faulkner (artikler[-at-]132solutions.com) REM Udfører fuld eller trinvis sikkerhedskopiering af mapper og filer konfigureret af brugeren. REM-brug--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Configuration Options--- REM Mappeplacering, hvor du vil gemme det resulterende backuparkiv. REM Denne mappe skal eksistere. Sæt ikke et '' i slutningen, dette tilføjes automatisk. REM Du kan indtaste en lokal sti, et eksternt drevbogstav (f.eks. F:) eller en netværksplacering (f.eks. \serverbackups) SET BackupStorage=C:Backup REM Hvilken dag i ugen vil du udføre en fuld backup på? REM Indtast et af følgende: Søn, Man, Tir, Ons, Tor, Fre, Lør, * REM Enhver anden ugedag end den, der er angivet nedenfor, vil køre en trinvis sikkerhedskopiering. REM Hvis du indtaster '*', vil der blive kørt en fuld backup hver gang. SET FullBackupDay=* REM Sted, hvor 7-Zip er installeret på din computer. REM Standarden er i en mappe, '7-Zip' i din Program File-mappe. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +--------------------------------------------- ----------------------------------+ REM | Ændre ikke noget nedenfor her, medmindre du ved, hvad du laver. | REM +------------------------------------------------ -----------------------+ REM-brugsvariabler. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt REM-validering. HVIS IKKE FINDER %filBackupConfig% ( ECHO Ingen konfigurationsfil fundet, mangler: %filBackupConfig% GÅ TIL Slut ) HVIS IKKE FINDER "%exe7Zip%" ( ECHO 7-Zip er ikke installeret på stedet: %dir7Zip% ECHO Opdater venligst mappen hvor 7-Zip er installeret GOTO End ) REM Backup variabler. FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('dato /t') GØR ( SET DayOfWeek=%%a SET NowDate=%%d-%%b-%%c SET FileDate=%%b-%%c-%%d ) IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek% IF /i {%FullBackupDay%}=={%DayOfWeek%} ( SET txtBackup =Fuldt SET swXCopy=/e ) ELSE ( SET txtBackup=Inkrementelt SET swXCopy=/s /d:%FileDate% ) ECHO Begynder at kopiere filer. HVIS IKKE FINDER "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) GØR ( SET Current=%%~A HVIS IKKE FINDER "!Current! " ( EKKO-FEJL! Ikke fundet: !Aktuelt! ) ELSE ( EKKO-kopiering: !Aktuelt! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM Bestem, om posten er en fil eller en mappe. HVIS "%%~xA"=="" ( REM Directory. XCOPY "!Current!" "!Destination!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE ( REM-fil. COPY /v /y "!Current!" "!Destination!" ) ) ) ECHO Færdig med at kopiere filer. EKKO. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Hvis backupfilen findes, skal du fjerne den til fordel for den nye fil. HVIS EKSISTER "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO Komprimerer sikkerhedskopierede filer. (Nyt vindue) REM Komprimer filer ved hjælp af 7-Zip i en lavere prioritetsproces. START "Komprimering af sikkerhedskopiering. LUK IKKE" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO Færdig med at komprimere sikkerhedskopierede filer. EKKO. ECHO Oprydning. HVIS EKSISTER "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" ECHO. :End ECHO Finished. EKKO. ENDLOKALT

Almindelig tekstkilde er tilgængelig her: backup

Hvis du har brug for hjælp til at komme i gang med at implementere dette script, er her et par links til at hjælpe dig:

  • Sådan opretter du en batch-fil
  • Sådan opretter du en Windows-planlagt opgave

Dette er det samme script, som jeg bruger til at sikkerhedskopiere min computer dagligt (med et par ændringer selvfølgelig), så jeg ved, at det fungerer meget godt. Jeg håber, du finder det nyttigt.

God fornøjelse!