Script per lots de Windows per fer una còpia de seguretat de dades

És possible que els usuaris d'ordinadors que han crescut amb ordinadors Mac i Windows avançats no en siguin conscients, però una vegada, fa molt de temps, tots els ordinadors personals eren controlats mitjançant una interfície de línia d'ordres. Sí, aquella caixa d'ordres maldestra de la vostra màquina Windows solia ser, literalment, l'única manera en què la majoria de la gent interactua amb un ordinador. Les interfícies de línia d'ordres es basaven en gran mesura en petits programes anomenats "scripts", que eren col·leccions d'ordres del sistema operatiu que s'utilitzaven per realitzar tasques habituals.

Tot i que les interfícies gràfiques d'usuari dels ordinadors actuals són anys llum més sofisticades i fàcils d'utilitzar que les antigues línies d'ordres, encara hi ha usos per al mètode antic de controlar l'ordinador. Una de les aplicacions més habituals i adequades per a un script de línia d'ordres és la còpia de seguretat de dades. Els scripts de línia d'ordres es poden automatitzar per executar-se en qualsevol moment sense cap interacció humana i tenen poques limitacions. El millor de tot: són una part integrada del sistema operatiu Windows.

Per què els scripts de línia d'ordres?

Per què utilitzar un script de línia d'ordres quan hi ha programes de còpia de seguretat comercials i gratuïts? Bé, els scripts de línia d'ordres tenen una sèrie d'avantatges únics. Aquests són alguns d'ells:

  • Comandes natives : Quina millor manera de fer una còpia de seguretat de les dades que utilitzant les funcions disponibles mitjançant el programa que crea les dades? Tant si es tracta del propi sistema operatiu mitjançant una simple ordre de còpia de fitxers com una ordre de base de dades per produir un fitxer binari restaurable, el programa font sap com fer una còpia de seguretat.
  • Control final : Com que un script de línia d'ordres segueix un senzill procediment pas a pas, sabeu exactament què està passant i podeu modificar fàcilment el comportament.
  • Ràpid : Com que tot és un comandament natiu, res està subjecte a interpretació. De nou, esteu utilitzant ordres proporcionades pel mateix programa, de manera que la sobrecàrrega es redueix al mínim.
  • Potent : Encara no he vist una tasca de còpia de seguretat que no es pugui fer mitjançant un script de línia d'ordres... i he fet algunes coses funny. Tot i que potser haureu de fer una mica de recerca i assaig i error si teniu necessitats realment úniques, normalment les funcions i característiques integrades del llenguatge de script que feu servir són més que suficients.
  • Lliure i Flexible : Òbviament, un script de línia d'ordres no costa res (fora del temps per desenvolupar-lo), de manera que podeu copiar els vostres scripts a qualsevol nombre de màquines i sistemes amb poc o cap cost o temps. Compareu això amb el cost d'adquirir llicències de programari de còpia de seguretat en diversos servidors i/o màquines d'escriptori.

Una visió general ràpida de l'script per lots de còpia de seguretat

La majoria de la gent mai no ha après a utilitzar scripts de línia d'ordres, i es considera una mica un "art negre". Tanmateix, en realitat és una cosa bastant senzilla d'aprendre. Per demostrar el poder de la línia d'ordres, us proporciono un script per lots senzill de Windows que podeu utilitzar per fer una còpia de seguretat de les vostres dades importants. Aquest script configurable i personalitzable no requereix cap coneixement (o voluntat d'aprendre) del llenguatge de scripts per lots de Windows, però si decidiu que voleu obtenir més informació sobre els scripts per lots de Windows, trobareu que aquest script és un bon lloc de partida. .

Què fa l'script de còpia de seguretat:

  1. Crea còpies de seguretat incrementals completes o diàries (vegeu a continuació una definició) dels fitxers i carpetes que especifiqueu en un fitxer de text de configuració independent (vegeu més avall).
    • Quan s'anomena una carpeta, es fa una còpia de seguretat d'aquesta carpeta i de totes les subcarpetes.
    • Quan s'anomena un fitxer, només es fa una còpia de seguretat d'aquest fitxer.
  2. Comprimeix (comprimeix) els fitxers de còpia de seguretat. Després de copiar tots els fitxers per fer una còpia de seguretat, es comprimeixen per estalviar espai. Cal que 7-Zip estigui instal·lat al vostre sistema perquè això funcioni.
  3. Data el fitxer comprimit i el mou a una ubicació d'emmagatzematge. Després de comprimir els fitxers de còpia de seguretat, l'arxiu resultant rep un nom de fitxer segons la data actual i després es mou a una ubicació d'emmagatzematge configurada, com ara una unitat externa o una ubicació de xarxa.
  4. Neteja després de si mateix. Un cop finalitzades totes les tasques, l'script per lots neteja tots els fitxers temporals que ha creat.

Requisits:

Windows 2000/XP/2003/Vista o posterior

7-Zip (és gratuït)

Fitxer de configuració:

El fitxer de configuració és simplement un fitxer de text que conté fitxers i carpetes de còpia de seguretat, introduït un element de còpia de seguretat per línia. Aquest fitxer haver de s'anomena "BackupConfig.txt" i es troba a la mateixa carpeta que l'script de còpia de seguretat. Aquí teniu un exemple d'un fitxer BackupConfig.txt (nota, el caràcter "#" de la primera línia indica que la línia és un comentari; els comentaris sempre s'ignoren quan s'executa l'script):

# Introduïu els noms de fitxers i carpetes, un per línia.

C:Documents i configuracióJason FaulknerEscriptori C:Documents i configuracióJason FaulknerEls meus documentsFitxers importants C:ScriptsBackupScript.bat

L'exemple anterior faria una còpia de seguretat de l'escriptori de l'usuari de Windows Jason Faulkner (i de totes les carpetes de l'escriptori), la carpeta anomenada "Fitxers importants" dins dels meus documents (i totes les carpetes dins de "Fitxers importants") i el fitxer "BackupScript.bat" dins. el directori C:Scripts.

Tipus de còpies de seguretat:

  • Còpia de seguretat completa: una còpia completa de tots els fitxers i carpetes (incloses les subcarpetes) s'inclou a la còpia de seguretat.
  • Còpia de seguretat incremental: quan es proporciona una carpeta, només els fitxers creats o modificats al data corrent són

    còpia de seguretat. Quan es proporciona un fitxer, sempre es fa una còpia de seguretat, independentment de quan es va modificar.

L'script per lots de Windows de còpia de seguretat de dades

Vull destacar que aquest script és molt bàsic, ja que tot el que fa és crear còpies de seguretat mitjançant una còpia de fitxer senzilla. Hi ha algunes opcions de configuració que podeu configurar:

  • La ubicació d'emmagatzematge de còpia de seguretat on s'emmagatzemen els fitxers de còpia de seguretat comprimits resultants.
  • El dia de la setmana que s'executa la còpia de seguretat completa (qualsevol altre dia s'executarà una còpia de seguretat incremental).
  • Ubicació on està instal·lat 7-Zip al vostre ordinador. L'script es configura automàticament per mirar a la ubicació predeterminada.

Si teniu suggeriments o sol·licituds de funció, comenta a continuació. M'encantaria molt fer un article de seguiment d'aquesta publicació que inclou un script actualitzat basat en l'entrada del lector. Si necessiteu instruccions sobre com "utilitzar" aquest script o configurar una tasca programada, feu una ullada als enllaços que hi ha a sota de la font de l'script.

Sense més preàmbuls, aquí el teniu:

Nota: Com que les cometes no es mostren correctament a continuació (i, com a resultat, poden malmetre el guió), he inclòs un enllaç de text sense format a sota del guió que podeu utilitzar per obtenir una font precisa per copiar.

@ECHO OFF REM BackupScript REM Versió 1.01, Actualitzat: 2008-05-21 REM Per Jason Faulkner (articles[-at-]132solutions.com) REM Realitza còpies de seguretat completes o incrementals de carpetes i fitxers configurats per l'usuari. Ús REM --- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Opcions de configuració --- REM Ubicació de la carpeta on voleu emmagatzemar l'arxiu de còpia de seguretat resultant. REM Aquesta carpeta ha d'existir. No poseu un "" al final, això s'afegirà automàticament. REM Podeu introduir una ruta local, una lletra d'unitat externa (p. ex. F:) o una ubicació de xarxa (p. ex. \serverbackups) SET BackupStorage=C:Backup REM Quin dia de la setmana voleu fer una còpia de seguretat completa? REM Introduïu una de les opcions següents: Dg, Dl, Dt, Dm, Dj, Dv, Dv, * REM Qualsevol dia de la setmana diferent de l'especificat a continuació executarà una còpia de seguretat incremental. REM Si introduïu '*', s'executarà una còpia de seguretat completa cada vegada. SET FullBackupDay=* REM Ubicació on s'ha instal·lat 7-Zip al vostre ordinador. REM El valor predeterminat es troba en una carpeta, "7-Zip" al vostre directori de fitxers de programa. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +---------------------------------------- --------------------------------+ REM | No canvieu res aquí a sota tret que sàpigues què estàs fent. | REM +------------------------------------------------- -----------------------+ Variables d'ús REM. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt Validació REM. SI NO EXISTEIX %filBackupConfig% ( ECHO No s'ha trobat cap fitxer de configuració, falta: %filBackupConfig% GOTO End ) SI NO EXISTE "%exe7Zip%" ( ECHO 7-Zip no està instal·lat a la ubicació: %dir7Zip% ECHO Actualitzeu el directori on 7-Zip està instal·lat. GOTO End ) Variables de còpia de seguretat REM. FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('data /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=SET Incremental swXCopy=/s /d:%FileDate% ) ECHO Començant a copiar fitxers. SI NO EXISTEIX "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO (SET Current=%%~A SI NO EXISTEIX "!Actual! " ( ECHO ERROR! No trobat: !Actual! ) ELSE ( ECHO Còpia: !Actual! SET Destination=%dirTempBackup%!Actual:~0,1!%%~pnxA REM Determina si l'entrada és un fitxer o directori. SI "%%~xA"=="" ( Directori REM. XCOPY "!Actual!" "!Destinació!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE ( Fitxer REM. COPY /v /y "!Actual!" "!Destinació!" ) ) ) ECHO S'han fet la còpia de fitxers. ECO. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Si el fitxer de còpia de seguretat existeix, traieu-lo a favor del nou fitxer. SI EXISTEIX "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO Comprimint fitxers de còpia de seguretat. (Finestra nova) REM Comprimiu fitxers amb 7-Zip en un procés de prioritat inferior. INICIA "Comprimint la còpia de seguretat. NO TANCA" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO S'ha fet la compressió dels fitxers de còpia de seguretat. ECO. ECHO Neteja. SI EXISTEIX "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" ECHO. :End ECHO acabat. ECO. ENDLOCAL

La font de text sense format està disponible aquí: còpia de seguretat

Si necessiteu ajuda per començar a implementar aquest script, aquí teniu un parell d'enllaços per ajudar-vos:

  • Com crear un fitxer per lots
  • Com crear una tasca programada de Windows

Aquest és el mateix script que faig servir per fer una còpia de seguretat del meu ordinador diàriament (amb un parell de modificacions, és clar), així que sé que funciona molt bé. Espero que us sigui útil.

Gaudeix!