PC și mobil

Windows Batch Script pentru a face backup datelor

Este posibil ca utilizatorii de computere care au crescut cu computere avansate Mac și Windows să nu fie conștienți de acest lucru, dar odată, cu mult timp în urmă, toate computerele personale erau controlate folosind o interfață de linie de comandă. Da, acea casetă de comandă greoaie de pe computerul tău Windows era literalmente singurul mod în care majoritatea oamenilor au interacționat vreodată cu un computer. Interfețele liniei de comandă se bazau în mare măsură pe programe mici numite „scripturi”, care erau colecții de comenzi ale sistemului de operare utilizate pentru a efectua sarcini obișnuite.

Deși interfețele grafice de utilizator ale PC-urilor de astăzi sunt cu ani lumină mai sofisticate și mai ușor de utilizat decât vechile linii de comandă, există încă utilizări pentru metoda mai veche de control al computerului. Una dintre cele mai comune și mai potrivite aplicații pentru un script de linie de comandă este backupul datelor. Scripturile din linia de comandă pot fi automatizate pentru a rula în orice moment fără nicio interacțiune umană și au puține limitări. Cel mai bun dintre toate - sunt o parte încorporată a sistemului de operare Windows.

De ce scripturi de linie de comandă?

De ce să folosiți un script de linie de comandă când există atât programe comerciale, cât și programe de backup gratuite? Ei bine, scripturile de linie de comandă au o serie de avantaje unice. Iată câteva dintre ele:

  • Comenzi native : Ce modalitate mai bună de a salva datele decât prin utilizarea funcțiilor disponibile prin programul care creează datele? Indiferent dacă acesta este sistemul de operare însuși printr-o comandă simplă de copiere a fișierelor sau o comandă a bazei de date pentru a produce un fișier binar restaurabil, programul sursă știe cel mai bine cum să-și facă backup.
  • Control suprem : Deoarece un script de linie de comandă urmează o procedură simplă pas cu pas, știți exact ce se întâmplă și puteți modifica cu ușurință comportamentul.
  • Rapid : Deoarece totul este o comandă nativă, nimic nu este supus interpretării. Din nou, utilizați comenzi furnizate de programul însuși, astfel încât suprasolicitarea este redusă la minimum.
  • Puternic : Nu am văzut încă o sarcină de rezervă care nu poate fi realizată printr-un script de linie de comandă... și am făcut niște lucruri ciudate. Deși este posibil să trebuiască să faceți câteva cercetări și încercări și erori dacă aveți nevoi cu adevărat unice, de obicei funcțiile și caracteristicile încorporate ale limbajului de scripting pe care îl utilizați sunt mai mult decât suficiente.
  • Gratuit și flexibil : Evident, un script de linie de comandă nu costă nimic (în afara timpului de dezvoltare), așa că vă puteți copia scripturile pe orice număr de mașini și sisteme cu timp sau costuri reduse sau deloc. Comparați acest lucru cu costul achiziționării de licențe pentru software de backup pe mai multe servere și/sau computere desktop.

O privire de ansamblu rapidă asupra scriptului de copiere a lotului

Majoritatea oamenilor nu au învățat niciodată să folosească scripturi în linia de comandă și este considerată oarecum o „artă neagră”. Cu toate acestea, este de fapt un lucru destul de simplu de învățat. Pentru a demonstra puterea liniei de comandă, vă ofer un script batch simplu Windows pe care îl puteți utiliza pentru a face backup la datele dvs. importante. Acest script configurabil și personalizabil nu necesită cunoștințe (sau dorință de a învăța) despre limbajul de scriptare în loturi Windows, dar dacă decideți că doriți să aflați mai multe despre scriptarea în loturi Windows, veți găsi că acest script este un bun loc de pornire. .

Ce face scriptul de rezervă:

  1. Creează copii de rezervă complete sau zilnice incrementale (vezi mai jos pentru o definiție) ale fișierelor și folderelor pe care le specificați într-un fișier text de configurare separat (vezi mai jos).
    • Când se numește un folder, se face o copie de rezervă pentru folderul respectiv și pentru toate subdosarele.
    • Când un fișier este denumit, se face o copie de rezervă doar pentru acel fișier.
  2. Comprimă (zipează) fișierele pentru care s-a făcut backup. După ce toate fișierele de care trebuie să faceți backup sunt copiate, acestea sunt comprimate pentru a economisi spațiu. Este necesar ca 7-Zip să fie instalat pe sistemul dumneavoastră pentru ca acest lucru să funcționeze.
  3. Datează fișierul comprimat și îl mută într-o locație de stocare. După comprimarea fișierelor de rezervă, arhiva rezultată primește un nume de fișier conform datei curente și apoi mutată într-o locație de stocare configurată, cum ar fi o unitate externă sau o locație de rețea.
  4. Se curăță după sine. După ce toate sarcinile sunt finalizate, scriptul batch curăță toate fișierele temporare pe care le-a creat.

Cerințe:

Windows 2000/XP/2003/Vista sau mai nou

7-Zip (este gratuit)

Fișier de configurare:

Fișierul de configurare este pur și simplu un fișier text care conține fișiere și foldere de backup, introdus un element de rezervă pe linie. Acest fișier trebuie sa să fie numit „BackupConfig.txt” și să fie localizat în același folder cu scriptul de backup. Iată un exemplu de fișier BackupConfig.txt (rețineți că caracterul „#” de pe prima linie indică faptul că linia este un comentariu; comentariile sunt întotdeauna ignorate când rulează scriptul):

# Introduceți nume de fișiere și foldere, câte unul pe linie.

C:Documente și setăriJason FaulknerDesktop C:Documente și setăriJason FaulknerDocumentele meleFișiere importante C:ScriptsBackupScript.bat

Exemplul de mai sus ar face backup pentru desktopul utilizatorului Windows Jason Faulkner (și toate folderele de pe desktop), folderul numit „Fișiere importante” din interiorul Documentelor mele (și toate folderele din „Fișiere importante”) și fișierul „BackupScript.bat” din interior directorul C:Scripts.

Tipuri de backup:

  • Backup complet: o copie completă a tuturor fișierelor și folderelor (inclusiv subfolderele) este inclusă în backup.
  • Copiere de rezervă incrementală: Când este furnizat un folder, numai fișierele create sau modificate pe data curenta sunt

    susținut. Când este furnizat un fișier, acesta este întotdeauna copiat de rezervă, indiferent de momentul în care a fost modificat.

Scriptul Windows Batch Backup de date

Vreau să subliniez că acest script este foarte de bază, deoarece tot ceea ce face este să creeze copii de rezervă folosind o copie simplă a fișierului. Există câteva opțiuni de configurare pe care le puteți seta:

  • Locația de stocare de rezervă unde sunt stocate fișierele de rezervă comprimate rezultate.
  • Ziua săptămânii în care se execută backup complet (orice altă zi ar rula o copie de rezervă incrementală).
  • Locația unde este instalat 7-Zip pe computer. Scriptul este setat automat să arate în locația implicită.

Dacă aveți sugestii sau solicitări de funcții, vă rugăm să comentați mai jos. Mi-ar plăcea foarte mult să fac un articol în continuare la această postare, care conține un script actualizat bazat pe contribuțiile cititorului. Dacă aveți nevoie de instrucțiuni despre cum să „utilizați” acest script sau să configurați o sarcină programată, aruncați o privire la linkurile de sub sursa scriptului.

Fără alte prelungiri, iată-l:

Notă: Deoarece ghilimele nu se afișează corect dedesubt (și, ca rezultat, pot încurca scriptul), am inclus un link de text simplu sub script, pe care îl puteți folosi pentru a obține o sursă exactă de pe care să o copiați.

@ECHO OFF REM BackupScript REM Versiunea 1.01, Actualizată: 2008-05-21 REM De Jason Faulkner (articole[-at-]132solutions.com) REM Efectuează copii de siguranță complete sau incrementale ale folderelor și fișierelor configurate de utilizator. Utilizare REM--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Opțiuni de configurare--- REM Locația folderului în care doriți să stocați arhiva de rezervă rezultată. REM Acest folder trebuie să existe. Nu pune un „” la capăt, acesta va fi adăugat automat. REM Puteți introduce o cale locală, o literă de unitate externă (ex. F:) sau o locație de rețea (ex. \serverbackups) SET BackupStorage=C:Backup REM În ce zi a săptămânii doriți să efectuați o copie de rezervă completă? REM Introduceți una dintre următoarele: Duminică, Luni, Marți, Miercuri, Joi, Vineri, Sat, * REM Orice zi a săptămânii, alta decât cea specificată mai jos, va executa o copie de rezervă incrementală. REM Dacă introduceți „*”, se va executa o copie de rezervă completă de fiecare dată. SET FullBackupDay=* Locația REM în care este instalat 7-Zip pe computer. REM Valoarea implicită este într-un folder, „7-Zip” din directorul Program Files. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +--------------------------------------- --------------------------------+ REM | Nu schimba nimic de mai jos decât dacă știi ce faci. | REM +------------------------------------------------ -----------------------+ Variabile de utilizare REM. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt Validare REM. DACĂ NU EXISTĂ %filBackupConfig% ( ECHO Nu a fost găsit niciun fișier de configurare, lipsește: %filBackupConfig% GOTO End ) DACĂ NU EXISTĂ „%exe7Zip%” ( ECHO 7-Zip nu este instalat în locația: %dir7Zip% ECHO Vă rugăm să actualizați directorul în care 7-Zip este instalat. GOTO End ) Variabile REM Backup. 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 Începe copierea fișierelor. DACĂ NU EXISTĂ "%dirTempBackup%" MKDIR "%dirTempBackup%" PENTRU /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO (SET Current=%%~A DACĂ NU EXISTĂ "!Actual! " ( ECHO EROARE! Nu a fost găsit: !Actual! ) ELSE ( Copiere ECHO: !Actual! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM Determinați dacă intrarea este un fișier sau un director. DACĂ "%%~xA"=="" (Director REM. XCOPY "!Actual!" "!Destinație!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE ( Fișier REM. COPY /v /y "!Actual!" "!Destinație!" ) ) ) ECHO Copierea fișierelor gata. ECOU. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Dacă fișierul de rezervă există, eliminați-l în favoarea noului fișier. DACĂ EXISTĂ „%BackupFileDestination%” DEL /f /q „%BackupFileDestination%” ECHO Se comprimă fișierele de rezervă. (Fereastra nouă) REM Comprimați fișierele folosind 7-Zip într-un proces cu prioritate mai mică. START "Comprimarea copiei de rezervă. NU ÎNCHIDE" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO Comprimarea fișierelor făcute de rezervă. ECOU. ECHO Curățare. DACĂ EXISTĂ „%dirTempBackup%” RMDIR /s /q „%dirTempBackup%” ECHO. :End ECHO Terminat. ECOU. ENDLOCALE

Sursa text simplu este disponibilă aici:backup

Dacă aveți nevoie de ajutor pentru a începe implementarea acestui script, iată câteva link-uri pentru a vă ajuta:

  • Cum se creează un fișier Batch
  • Cum se creează o sarcină programată Windows

Acesta este același script pe care îl folosesc zilnic pentru backup-ul computerului meu (cu câteva modificări, desigur), așa că știu că funcționează foarte bine. Sper că o găsiți util.

Bucurați-vă!

$config[zx-auto] not found$config[zx-overlay] not found