Script de sauvegarde pour Windows Server 2008 R2 et Windows Server 2012

Envoyer Imprimer PDF

Sommaire

 

 

Introduction

Dans cet article, je vous présente un script de sauvegarde assez complet pour Windows 2008 R2 et Windows Server 2012 qui devrait vous rendre pas mal de services !

 

 

Compatibilité

Le script a été testé sur Windows 2008 R2 et Windows Server 2012. Il devrait également être supporté sur du Windows Server 2012 R2 bien que je n’ai réalisé aucun test à ce jour.

 


Les fonctionnalités

Il prend en charge les fonctionnalités suivantes :

  • Gestion de la rotation quotidienne, hebdomadaire et mensuelle : la sauvegarde mensuelle est réalisée le premier jour du mois, la sauvegarde hebdomadaire est réalisée le lundi. Les autres jours, la sauvegarde est considérée comme étant quotidienne. Hormis le nom du fichier de sauvegarde pour réaliser la rotation, il n’y a aucune différence entre les 3 types.
  • Compression : elle est réalisée sur demande à l’aide de 7-Zip. J’ai constaté des ratios allant de 1 pour 10 donc fortement recommandé.
  • Synchronisation depuis un répertoire distante : la synchronisation se fait à l’aide de Robocopy et de l’option « /MIR ». Simple mais efficace…
  • Journalisation des tâches dans un fichier texte : un fichier est généré pour chaque tâche de sauvegarde. Un fichier mensuel est également créé pour obtenir un meilleur visuel sur le taux d’échecs et de réussites.
  • Notification par message électronique : un email est envoyé sur demande et à la fin de chaque tâche de sauvegarde.
  • Type de sauvegarde : vous avez le choix entre la sauvegarde de l’état système ou une sauvegarde complète de type BareMetal.

 

Certaines fonctionnalités peuvent être activées ou configurées selon vos besoins à l’aide de paramètres :

  • Compression : à l’aide du paramètre « Compress ». Par défaut le script ne compressera pas les sauvegardes à moins que vous spécifiez le paramètre.
  • Synchronisation : à l’aide du paramètre « Sync ». Par défaut le script ne synchronisera pas les sauvegardes à moins que vous spécifiez le paramètre.
  • Notification : à l’aide du paramètre « Notify ». Par défaut le script n’enverra pas de notification par email à moins que vous spécifiez le paramètre.

 

Enfin, pour faciliter l’usage et éviter les erreurs de configuration, le script s’appuie sur un fichier de configuration XML et d’un schéma XML embarqué.

 


Installation : Partie 1 – copie des sources

Récupérer le fichier Zippé depuis le lien Technet suivant : http://gallery.technet.microsoft.com/scriptcenter/The-ultimate-backup-script-819e52ee. Extrayez le contenu de l’archive dans le dossier de votre choix. Pour ma part, j’ai décidé de copier le contenu de l’archive dans le dossier « D:\WSB-Script ».

 

 

 

 

 

 

 

L’archive contient donc 4 fichiers dont deux situés dans un sous-répertoire « Tools ».

  • « Backup-Config.xml » : fichier de configuration de la sauvegarde que vous aurez à modifier selon vos besoins
  • « Backup-Task.ps1 » : le script en lui-même que vous n’aurez pas à modifier
  • « 7z.* » : le binaire et la dll nécessaire à l’utilisation de 7-Zip (vous pouvez normalement utiliser vos propres sources…)

 

 

Installation : Partie 2 – édition du fichier de configuration

Vous serez dans l’obligation de paramétrer la sauvegarde à l’aide du fichier de configuration « Backup-Config.xml » pour pouvoir exécuter le script. Pour faire les choses bien, j’ai utilisé un schéma XML au sein même du script afin de limiter la casse.

Certains informations sont optionnelles et dépendrons des paramètres d’exécution du script. Par exemple, les informations relatives à la notification par message électronique ne seront utilisées que si vous activer la notification leur du lancement du script.

Ci-dessous, je vous joins un exemple de configuration avec l’ensemble des paramètres possibles.

 

Le fichier est constitué de plusieurs sections liées à une fonctionnalité du script.

  • <GENERAL> : Cette section permet de spécifier la configuration de base de votre sauvegarde.

<MonthRetention> : le nombre de version à conserver pour les sauvegardes mensuelles (valeur par défaut : 2).
<WeekRetention> : le nombre de version à conserver pour les sauvegardes hebdomadaires (valeur par défaut : 4).
<DayRetention> : le nombre de version à conserver pour les sauvegardes quotidiennes (valeur par défaut : 15).
<MinimumSpaceInGB> : l’espace nécessaire par défaut pour réaliser une sauvegarde (valeur par défaut : 20Go). Le script est capable d’identifier la taille nécessaire pour une sauvegarde, à la seule condition que vous compressiez vos sauvegardes et que vous en ailler déjà réalisé une.
<BackupRootFolder> : Le répertoire de stockage de vos sauvegardes. A spécifier obligatoirement.

 

  • <DESTINATION> : Cette section concerne la synchronisation. Elle doit être configurée seulement si vous avez activé la synchronisation.

<SyncServerName> : le nom du serveur avec lequel vous allez vous synchroniser.
<SyncFolderName> : le nom du dossier partagé qui stockera la synchronisation.

 

  • <NOTIFICATION> : Cette section concerne la notification par message électronique. Elle doit être configurée seulement si vous avez activé la notification.

<SmtpServerName> : le nom d’hôte de votre serveur SMTP.
<SmtpServerPort> : le port du serveur SMTP.
<SmtpServerUsername> : Le nom d’utilisateur pour l’envoi.
<SmtpServerPassword> : Le mot de passe pour l’envoi.
<Ssl> : l’activation de la fonctionnalité TLS. Le type doit être un booléen (true/false).
<Recipient> : l’adresse de destination. Répétez le paramètre autant de fois que vous avez de destinataires.
<Sender> : L’adresse d’envoi.

 


Installation : Partie 3 – création de la tâche planifiée

Je ne vais pas vous expliquer comment créer une tâche planifiée car ce n’est pas vraiment l’objet de l’article. Je vais me contenter de vous fournir les informations sur la ligne de commande à spécifier depuis l’onglet « Actions » de votre tâche planifiée.

  • Action : « Démarrer un programme »
  • Programme/Script : « powershell.exe »
  • Ajouter des arguments : « -NoProfile -NonInteractive -ExecutionPolicy unrestricted -Command D:\WSB-Script\Backup-Task.ps1 -ConfigFile D:\WSB-Script\Backup-Config.xml -Compress -Sync -Notify »

 

Remarque : les arguments spécifiés permettront de réaliser une sauvegarde de l’état système et d’activer l’ensemble des fonctionnalités du script.

 

 

Exécution manuelle du script

Le fonctionnement est assez simple dès lors que vous avez bien complété votre fichier de configuration.

Exemple 1: Backup-Task.ps1 –ConfigFile e:\WSB-Script\Backup-Config.xml –Compress –Sync –Notify

Lancement d’une sauvegarde de l’état système avec l’activation de la compression, de la synchronisation et de la notification.

Exemple 2 : Backup-Task.ps1 –ConfigFile e:\WSB-Script\Backup-Config.xml –BackupType BareMetal

Lancement d’une tâche de sauvegarde de type BareMetal sans aucune fonctionnalité supplémentaire.

Exemple 3 : Backup-Task.ps1 –ConfigFile e:\WSB-Script\Backup-Config.xml –BackupType BareMetal  –Compress –Notify

Lancement d’une tâche de sauvegarde de type BareMetal avec compression et notification.

 

Lors de la première exécution, le script installera les fonctionnalités Windows nécessaires de manière automatique.

 

La sauvegarde se lance…

 

Une fois que vous voyez le message « L’opération de sauvegarde est terminée. ». Le script lance la synchronisation. Vous pouvez d’ailleurs vérifier que le processus « 7z.exe » est en pleine activité… Ce n’est pas très verbeux mais le script a pour vocation d’être exécuter via une tâche planifiée.

 

Si vous activez la notification, vous recevrez un message électronique dont je vous propose un exemple de format ci-dessous.

 

Vous pouvez également consulter le fichier de journalisation généré à chaque exécution.

 


Conclusion

Maintenant que nous avons vu ensemble comment mettre en place le script de sauvegarde. Je vous propose également de consulter deux articles relatifs à la restauration:

 


Mise à jour le Lundi, 23 Décembre 2013 22:05