PC et portable

Script Windows Batch pour sauvegarder les données

Les utilisateurs d'ordinateurs qui ont grandi avec des ordinateurs Mac et Windows avancés ne le savent peut-être pas, mais il y a longtemps, tous les ordinateurs personnels étaient contrôlés à l'aide d'une interface de ligne de commande. Oui, cette boîte de commande maladroite sur votre machine Windows était littéralement la seule façon dont la plupart des gens interagissaient avec un ordinateur. Les interfaces de ligne de commande reposaient fortement sur de petits programmes appelés « scripts », qui étaient des collections de commandes du système d'exploitation utilisées pour effectuer des tâches courantes.

Bien que les interfaces utilisateur graphiques des PC d'aujourd'hui soient des années-lumière plus sophistiquées et plus faciles à utiliser que les anciennes lignes de commande, il existe encore des utilisations pour l'ancienne méthode de contrôle de votre ordinateur. L'une des applications les plus courantes et les mieux adaptées pour un script de ligne de commande est la sauvegarde des données. Les scripts de ligne de commande peuvent être automatisés pour s'exécuter à tout moment sans aucune interaction humaine et présentent peu de limitations. Mieux encore, ils font partie intégrante du système d'exploitation Windows.

Pourquoi des scripts en ligne de commande ?

Pourquoi utiliser un script en ligne de commande alors qu'il existe à la fois des programmes de sauvegarde commerciaux et gratuits ? Eh bien, les scripts en ligne de commande présentent un certain nombre d'avantages uniques. En voici quelques-uns :

  • Commandes natives : Quelle meilleure façon de sauvegarder des données qu'en utilisant les fonctions mises à disposition par le programme qui crée les données ? Qu'il s'agisse du système d'exploitation lui-même via une simple commande de copie de fichier ou une commande de base de données pour produire un fichier binaire restaurable, le programme source sait le mieux se sauvegarder.
  • Contrôle ultime : Étant donné qu'un script de ligne de commande suit une procédure simple étape par étape, vous savez exactement ce qui se passe et pouvez facilement modifier le comportement.
  • Rapide : Puisque tout est une commande native, rien n'est sujet à interprétation. Encore une fois, vous utilisez des commandes fournies par le programme lui-même, donc la surcharge est réduite au minimum.
  • Puissant : Je n'ai pas encore vu de tâche de sauvegarde qui ne peut pas être accomplie via un script de ligne de commande… et j'ai fait des trucs géniaux. Bien que vous deviez peut-être faire des recherches et des essais et des erreurs si vous avez des besoins vraiment uniques, les fonctions et fonctionnalités intégrées du langage de script que vous utilisez sont généralement plus que suffisantes.
  • Gratuit et flexible : Évidemment, un script en ligne de commande ne coûte rien (en dehors du temps de développement), vous pouvez donc copier vos scripts sur n'importe quel nombre de machines et de systèmes avec peu ou pas de temps ou de coût. Comparez cela au coût d'achat de licences pour le logiciel de sauvegarde sur plusieurs serveurs et/ou ordinateurs de bureau.

Un aperçu rapide du script de sauvegarde par lots

La plupart des gens n'ont jamais appris à utiliser les scripts en ligne de commande, et cela est considéré en quelque sorte comme un « art noir ». Cependant, c'est en fait une chose assez simple à apprendre. Pour démontrer la puissance de la ligne de commande, je vous propose un simple script batch Windows que vous pouvez utiliser pour sauvegarder vos données importantes. Ce script configurable et personnalisable ne nécessite aucune connaissance (ou volonté d'apprendre) du langage de script par lots Windows, mais si vous décidez que vous souhaitez en savoir plus sur les scripts par lots Windows, vous constaterez que ce script est un bon point de départ. .

Ce que fait le script de sauvegarde :

  1. Crée des sauvegardes incrémentielles complètes ou quotidiennes (voir ci-dessous pour une définition) des fichiers et dossiers que vous spécifiez dans un fichier texte de configuration séparé (voir ci-dessous).
    • Lorsqu'un dossier est nommé, ce dossier et tous les sous-dossiers sont sauvegardés.
    • Lorsqu'un fichier est nommé, seul ce fichier est sauvegardé.
  2. Compresse (zippe) les fichiers sauvegardés. Une fois tous les fichiers à sauvegarder copiés, ils sont compressés pour économiser de l'espace. 7-Zip doit être installé sur votre système pour que cela fonctionne.
  3. Date le fichier compressé et le déplace vers un emplacement de stockage. Une fois les fichiers de sauvegarde compressés, l'archive résultante reçoit un nom de fichier en fonction de la date actuelle, puis est déplacée vers un emplacement de stockage configuré, tel qu'un lecteur externe ou un emplacement réseau.
  4. Se nettoie après lui-même. Une fois toutes les tâches terminées, le script batch nettoie tous les fichiers temporaires qu'il a créés.

Conditions:

Windows 2000/XP/2003/Vista ou plus récent

7-Zip (c'est gratuit)

Fichier de configuration:

Le fichier de configuration est simplement un fichier texte qui contient les fichiers et dossiers à sauvegarder, entré un élément de sauvegarde par ligne. Ce fichier doit être nommé "BackupConfig.txt" et être situé dans le même dossier que le script de sauvegarde. Voici un exemple de fichier BackupConfig.txt (notez que le caractère « # » sur la première ligne indique que la ligne est un commentaire ; les commentaires sont toujours ignorés lors de l'exécution du script) :

# Entrez les noms de fichiers et de dossiers, un par ligne.

C:Documents and SettingsJason FaulknerDesktop C:Documents and SettingsJason FaulknerMes documentsFichiers importants C:ScriptsBackupScript.bat

L'exemple ci-dessus sauvegarde le bureau de l'utilisateur Windows Jason Faulkner (et tous les dossiers sur le bureau), le dossier appelé "Fichiers importants" dans Mes documents (et tous les dossiers dans "Fichiers importants") et le fichier "BackupScript.bat" à l'intérieur le répertoire C:Scripts.

Types de sauvegardes :

  • Sauvegarde complète : une copie complète de tous les fichiers et dossiers (y compris les sous-dossiers) est incluse dans la sauvegarde.
  • Sauvegarde incrémentielle : Lorsqu'un dossier est fourni, seuls les fichiers créés ou modifiés sur le date actuelle sommes

    sauvegardé. Lorsqu'un fichier est fourni, il est toujours sauvegardé, quelle que soit la date de modification.

Le script batch Windows de sauvegarde de données

Je tiens à souligner que ce script est très basique, car il ne fait que créer des sauvegardes en utilisant une simple copie de fichier. Vous pouvez définir certaines options de configuration :

  • L'emplacement de stockage de sauvegarde où les fichiers de sauvegarde compressés résultants sont stockés.
  • Le jour de la semaine où la sauvegarde complète est exécutée (tout autre jour exécuterait une sauvegarde incrémentielle).
  • Emplacement où 7-Zip est installé sur votre ordinateur. Le script est automatiquement défini pour rechercher dans l'emplacement par défaut.

Si vous avez des suggestions ou des demandes de fonctionnalités, veuillez commenter ci-dessous. J'aimerais vraiment faire un article de suivi à cet article qui présente un script mis à jour basé sur les commentaires des lecteurs. Si vous avez besoin d'instructions sur la façon d'« utiliser » ce script ou de configurer une tâche planifiée, consultez les liens sous la source du script.

Sans plus tarder, voilà:

Noter: Étant donné que les guillemets ne s'affichent pas correctement ci-dessous (et peuvent par conséquent gâcher le script), j'ai inclus un lien en texte brut sous le script que vous pouvez utiliser pour obtenir une source précise à partir de laquelle copier.

@ECHO OFF REM BackupScript REM Version 1.01, mise à jour : 2008-05-21 REM Par Jason Faulkner (articles[-at-]132solutions.com) REM Effectue des sauvegardes complètes ou incrémentielles des dossiers et fichiers configurés par l'utilisateur. Utilisation de REM--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Options de configuration--- REM Emplacement du dossier où vous souhaitez stocker l'archive de sauvegarde résultante. REM Ce dossier doit exister. Ne mettez pas de '' à la fin, cela sera ajouté automatiquement. REM Vous pouvez saisir un chemin local, une lettre de lecteur externe (ex. F:) ou un emplacement réseau (ex. \serverbackups) SET BackupStorage=C:Backup REM Sur quel jour de la semaine voulez-vous effectuer une sauvegarde complète ? REM Entrez l'un des éléments suivants : Sun, Mon, Tue, Wed, Thu, Ven, Sam, * REM Tout jour de la semaine autre que celui spécifié ci-dessous exécutera une sauvegarde incrémentielle. REM Si vous entrez '*', une sauvegarde complète sera exécutée à chaque fois. SET FullBackupDay=* REM Emplacement où 7-Zip est installé sur votre ordinateur. REM La valeur par défaut est dans un dossier, '7-Zip' dans votre répertoire Program Files. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +--------------------------------------- --------------------------------+ REM | Ne changez rien ci-dessous à moins que vous ne sachiez ce que vous faites. | REM +------------------------------------------------ -----------------------+ Variables d'utilisation REM. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt Validation REM. IF NOT EXIST %filBackupConfig% ( ECHO Aucun fichier de configuration trouvé, manquant : %filBackupConfig% GOTO End ) IF NOT EXIST "%exe7Zip%" ( ECHO 7-Zip n'est pas installé à l'emplacement : %dir7Zip% ECHO Veuillez mettre à jour le répertoire où 7-Zip est installé GOTO End ) REM Variables de sauvegarde. 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=Incremental SET swXCopy=/s /d:%FileDate% ) ECHO Démarrage de la copie des fichiers. IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO ( SET Current=%%~A IF NOT EXIST "!Current! " ( ECHO ERROR! Not found: !Current! ) ELSE ( ECHO Copy: !Current! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM Détermine si l'entrée est un fichier ou un répertoire. IF "%%~xA"=="" ( Répertoire REM. XCOPY "!Current!" "!Destination!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE (REM File. COPY /v /y "!Current!" "!Destination!" ) ) ) ECHO Copie des fichiers terminée. ÉCHO. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Si le fichier de sauvegarde existe, supprimez-le en faveur du nouveau fichier. IF EXIST "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO Compression des fichiers sauvegardés. (Nouvelle fenêtre) REM Compressez les fichiers à l'aide de 7-Zip dans un processus de priorité inférieure. DÉMARRER "Compression de la sauvegarde. NE PAS FERMER" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO Compression des fichiers sauvegardés terminée. ÉCHO. ECHO Nettoyage. SI EXISTE "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" ECHO. :Fin ECHO Terminé. ÉCHO. ENDLOCAL

La source en texte brut est disponible ici : sauvegarde

Si vous avez besoin d'aide pour commencer à implémenter ce script, voici quelques liens pour vous aider :

  • Comment créer un fichier batch
  • Comment créer une tâche planifiée Windows

C'est le même script que j'utilise pour sauvegarder mon ordinateur quotidiennement (avec quelques modifications bien sûr), donc je sais qu'il fonctionne très bien. J'espère que tu trouves cela utile.

Prendre plaisir!

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