Anonim

Datamaskiner som er vokst opp med avanserte Mac- og Windows-datamaskiner er kanskje ikke klar over det, men en gang for lenge siden ble alle personlige datamaskiner kontrollert ved hjelp av et kommandolinjegrensesnitt. Ja, den klumpete kommandoboksen på Windows-maskinen din var bokstavelig talt den eneste måten folk noensinne har interaksert med en datamaskin. Kommandolinjegrensesnitt var avhengige av små programmer som ble kalt 'skript', som var samlinger av operativsystemkommandoer som ble brukt til å utføre vanlige oppgaver.

Selv om de grafiske brukergrensesnittene på dagens PC-er er lysår mer sofistikerte og enkle å bruke enn de gamle kommandolinjene, er det fremdeles bruk for den eldre metoden for å kontrollere datamaskinen din. En av de vanligste, og godt egnede, applikasjonene for et kommandolinjeskript er sikkerhetskopiering av data. Kommandolinjeskripter kan automatiseres til å kjøre når som helst uten noen menneskelig interaksjon, og har få begrensninger. Det beste av alt - de er en innebygd del av Windows-operativsystemet.

Hvorfor kommandolinjeskript?

Hvorfor bruke et kommandolinjeskript når det er både kommersielle og gratis sikkerhetskopieringsprogrammer der ute? Vel, kommandolinjeskript har en rekke unike fordeler. Her er noen av dem:

  • Innfødte kommandoer : Hvilken bedre måte å sikkerhetskopiere data på enn ved å bruke funksjonene som er gjort tilgjengelige gjennom programmet som lager dataene? Enten dette er operativsystemet i seg selv via en enkel filkopieringskommando eller en databasekommando for å produsere en gjenopprettbar binær fil, vet kildeprogrammet best hvordan man tar sikkerhetskopi.
  • Ultimate Control : Siden et kommandolinjeskript følger en enkel trinn-for-prosedyre, vet du nøyaktig hva som skjer og kan enkelt endre oppførselen.
  • Rask : Siden alt er en innfødt kommando, er ingenting gjenstand for tolkning. Igjen bruker du kommandoer levert av selve programmet, så overhead holdes på et minimum.
  • Kraftig : Jeg har ennå ikke sett en sikkerhetskopieoppgave som ikke kan utføres gjennom et kommandolinjeskript … og jeg har gjort noen funky ting. Selv om du kanskje må gjøre noe research og prøve og feiling hvis du har virkelig unike behov, er de innebygde funksjonene og funksjonene til skriptspråket du bruker mer enn tilstrekkelig.
  • Gratis og fleksibelt : Det er klart at et kommandolinjeskript ikke koster noe (utenfor tiden for å utvikle det), slik at du kan kopiere skriptene dine til et hvilket som helst antall maskiner og systemer med liten eller ingen tid eller kostnader. Sammenlign dette med kostnadene ved å kjøpe lisenser for sikkerhetskopi-programvare på flere servere og / eller stasjonære maskiner.

En rask oversikt over Backup Batch-skriptet

De fleste har aldri lært å bruke kommandolinjeskripting, og det anses som en "svart kunst". Imidlertid er det faktisk en ganske enkel ting å lære. For å demonstrere kraften i kommandolinjen, gir jeg et enkelt Windows-batch-skript som du kan bruke til å ta sikkerhetskopi av viktige data. Dette konfigurerbare og tilpassbare skriptet krever ikke kunnskap (eller vilje til å lære) om skriptspråket for batch for Windows, men hvis du bestemmer deg for at du vil lære mer om Windows batchskripting, vil du finne dette skriptet som et godt utgangspunkt .

Hva sikkerhetskopieringsskriptet gjør:

  1. Oppretter full eller daglig trinnvis (se nedenfor for en definisjon) sikkerhetskopi av filer og mapper du spesifiserer i en egen konfigurasjonstekstfil (se nedenfor).
    • Når en mappe heter, sikkerhetskopieres den mappen og alle undermapper.
    • Når en fil heter, sikkerhetskopieres bare den filen.
  2. Komprimerer (glider) de sikkerhetskopierte filene. Etter at alle filene som skal sikkerhetskopieres er kopiert, komprimeres de for å spare plass. 7-Zip må installeres på systemet ditt for at dette skal fungere.
  3. Daterer den komprimerte filen og flytter den til et lagringssted. Etter at sikkerhetskopifilene er komprimert, får det resulterende arkivet et filnavn i henhold til gjeldende dato og deretter flyttet til et konfigurert lagringssted, for eksempel en ekstern stasjon eller nettverksplassering.
  4. Renser opp etter seg selv. Etter at alle oppgavene er fullført, renser batch-skriptet opp alle de midlertidige filene det opprettet.

Krav:
Windows 2000 / XP / 2003 / Vista eller nyere
7-Zip (det er gratis)

Konfigurasjonsfil:
Konfigurasjonsfilen er ganske enkelt en tekstfil som inneholder filer og mapper til sikkerhetskopi, lagt inn ett sikkerhetskopielement per linje. Denne filen må hete “BackupConfig.txt” og være i samme mappe som sikkerhetskopien. Her er et eksempel på en BackupConfig.txt-fil (merk at "#" -tegnet på den første linjen indikerer at linjen er en kommentar; kommentarer blir alltid ignorert når skriptet kjøres):

# Skriv inn fil- og mappenavn, ett per linje.
C: \ Documents and Settings \ Jason Faulkner \ Desktop C: \ Documents and Settings \ Jason Faulkner \ My Documents \ Viktige filer C: \ Scripts \ BackupScript.bat

Eksemplet ovenfor ville ta sikkerhetskopi av Windows-brukeren Jason Faulkners skrivebord (og alle mapper på skrivebordet), mappen som heter "Viktige filer" inne i Mine dokumenter (og alle mapper inne i "Viktige filer") og filen "BackupScript.bat" inni katalogen C: \ Scripts.

Typer sikkerhetskopier:

  • Full sikkerhetskopi: En komplett kopi av alle filer og mapper (inkludert undermapper) er inkludert i sikkerhetskopien.
  • Trinnvis sikkerhetskopi: Når en mappe leveres, er det bare filer som er opprettet eller endret på gjeldende dato
    støttet opp. Når en fil leveres, sikkerhetskopieres den alltid, uavhengig av når den ble endret.

Datasikkerhetskopien Windows Batch Script

Jeg vil understreke at dette skriptet er veldig grunnleggende, ettersom alt det gjør er å lage sikkerhetskopier ved å bruke en enkel filkopi. Det er noen konfigurasjonsalternativer du kan angi:

  • Lagringsstedet for sikkerhetskopi der de resulterende komprimerte sikkerhetskopifilene er lagret.
  • Dagen i uken som hele sikkerhetskopien kjøres (annenhver dag kjører en inkrementell sikkerhetskopi).
  • Plasseringen der 7-Zip er installert på datamaskinen din. Skriptet blir automatisk satt til å se på standardplasseringen.

Hvis du har noen forslag eller funksjonsforespørsler, kan du kommentere nedenfor. Jeg vil veldig gjerne gjøre en oppfølgingsartikkel til dette innlegget som inneholder et oppdatert skript basert på leserinnspill. Hvis du trenger instruksjoner om hvordan du "bruker" dette skriptet eller konfigurerer en planlagt oppgave, kan du se på lenkene under skriptkilden.

Uten videre, her er det:

Merk : Siden sitatene ikke vises riktig nedenfor (og som et resultat kan ødelegge skriptet), har jeg lagt inn en ren tekstlink under skriptet som du kan bruke for å få en nøyaktig kilde å kopiere fra.

@ECHO OFF REM BackupScript REM versjon 1.01, Oppdatert: 2008-05-21 REM Av Jason Faulkner (Articles132solutions.com) REM Utfører full eller inkrementell sikkerhetskopi av mapper og filer konfigurert av brukeren. REM-bruk --- REM> BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM --- Konfigurasjonsalternativer --- REM Mappeplass der du vil lagre det resulterende backup-arkivet. REM Denne mappen må eksistere. Ikke legg en '\' på slutten, dette legges til automatisk. REM Du kan angi en lokal bane, en ekstern stasjonsbokstav (f.eks. F :) eller et nettverkssted (eks. \\ server \ sikkerhetskopier). SET BackupStorage = C: \ Backup REM Hvilken ukedag vil du utføre en full sikkerhetskopi på? REM Skriv inn ett av følgende: Søn, man, tirs, ons, tors, fre, lør, * REM Enhver uke i uken enn den som er spesifisert nedenfor vil kjøre en inkrementell sikkerhetskopi. REM Hvis du skriver inn '*', vil en full sikkerhetskopi kjøres hver gang. SET FullBackupDay = * REM Sted hvor 7-Zip er installert på datamaskinen din. REM Standard er i en mappe, '7-Zip' i Program Files-katalogen. SET InstallLocationOf7Zip =% ProgramFiles% \ 7-Zip REM + -------------------------------------- --------------------------------- + REM | Ikke endre noe nedenfor her, med mindre du vet hva du gjør. | REM + ------------------------------------------------ ----------------------- + REM Bruksvariabler. SET exe7Zip =% InstallLocationOf7Zip% \ 7z.exe SET dirTempBackup =% TEMP% \ backup SET filBackupConfig = BackupConfig.txt REM Validering. HVIS IKKE EXIST% filBackupConfig% (ECHO Ingen konfigurasjonsfil funnet, mangler:% filBackupConfig% GOTO End) HVIS IKKE EXIST "% exe7Zip%" (ECHO 7-Zip er ikke installert på stedet:% dir7Zip% ECHO Vennligst oppdater katalogen der 7-Zip er installert. GOTO End) REM Backup-variabler. FOR / f "tokens = 1, 2, 3, 4 delims = /" %% a IN ('date / t') DO (SET DayOfWeek = %% a SET NowDate = %% d - %% b - %% c SET FileDate = %% b - %% c - %% d) IF {% FullBackupDay%} == {*} SET FullBackupDay =% DayOfWeek% IF / i {% FullBackupDay%} == {% DayOfWeek%} (SET txtBackup = Full SET swXCopy = / e) ELSE (SET txtBackup = Trinnvis SET swXCopy = / s / d:% FileDate%) ECHO Begynner å kopiere filer. HVIS IKKE EXIST "% dirTempBackup%" MKDIR "% dirTempBackup%" FOR / f "hopp = 1 tokens = *" %% A IN (% filBackupConfig%) DO (SET Current =%% ~ A IF NOT EXIST "! Nåværende! "(ECHO FEIL! Ikke funnet:! Nåværende!) ELSE (ECHO Kopiering:! Nåværende! SET Destinasjon =% dirTempBackup% \! Nåværende: ~ 0, 1!%% ~ PnxA REM Bestem om oppføringen er en fil eller katalog. HVIS "%% ~ xA" == "" (REM-katalog. XCOPY "! Nåværende!" "! Destinasjon!" / V / c / i / g / h / q / r / y% swXCopy%) ELSE (REM-fil . COPY / v / y "! Nåværende!" "! Destinasjon!"))) ECHO Ferdig med å kopiere filer. EKKO. SET BackupFileDestination =% BackupStorage% \ Backup_% FileDate% _% txtBackup% .zip REM Hvis sikkerhetskopifilen eksisterer, fjerner du den til fordel for den nye filen. HVIS EXIST "% BackupFileDestination%" DEL / f / q "% BackupFileDestination%" ECHO Komprimering av sikkerhetskopierte filer. (Nytt vindu) REM Komprimere filer ved å bruke 7-Zip i en prosess med lavere prioritet. START "Komprimering av sikkerhetskopi. IKKE LUKK" / belownormal / wait "% exe7Zip%" a -tzip -r -mx5 "% BackupFileDestination%" "% dirTempBackup% \" ECHO Klart komprimering av sikkerhetskopierte filer. EKKO. ECHO Å rydde opp. HVIS EXIST "% dirTempBackup%" RMDIR / s / q "% dirTempBackup%" ECHO. : Slutt ECHO ferdig. EKKO. ENDLOCAL

Vanlig tekstkilde er tilgjengelig her: sikkerhetskopi

Hvis du trenger hjelp til å komme i gang med å implementere dette skriptet, er her et par lenker for å hjelpe deg:

  • Hvordan lage en batch-fil
  • Hvordan lage en planlagt Windows-oppgave

Dette er det samme skriptet jeg bruker for å sikkerhetskopiere datamaskinen min daglig (med et par modifikasjoner selvfølgelig), så jeg vet at den fungerer veldig bra. Jeg håper du synes det er nyttig.

Nyt!

Windows batch script for sikkerhetskopiering av data