Sauvegardes des machines Windows avec BackupPC

Si BackupPC est très efficaces pour gérer la sauvegardes de machines UNIX, les choses se compliquent pour sauvegarder les machines Windows. Les problèmes rencontrés le plus souvents sont les suivants:

Limitation sur la taille des chemins

Certains caractères exotiques empêche l'accès à des fichiers

Les fichiers en cours d'utilisation sont verrouillés

Ces limitations existent aussi bien en utilisant la méthode SMB 1) Service Message Block, c'est à dire le partage de fichier standard de Windows ou rsyncd 2) rsyncd est un outils de synchronisation de fichiers très efficace. Écrit pour les systèmes UNIX, il est possible de le faire tourner sous Windows grâce à Cygwin .

Pour contourner les différentes limitations expliquées plus haut, il faut:

Utiliser rsyncd comme méthode de transfert

Utiliser une version récente de la dll cygwin qui supporte l'UTF-8

Prendre des snapshot 3) Un snapshot, aussi appelé instantané permet de conserver une vue stable et cohérente d'un système de fichier à un instant donné en utilisant VSS 4) Volume Snapshot Service

Tous ces prérequis peuvent être installés assez facilement en suivants les instructions sur cette page

Installation

Si vous utilisez WPKG pour déployer l'agent de sauvegarde, vous pouvez passer cette étape et aller directement à la configuration. Si vous installez manuellement l'agent, suivez les instructions de ce chapitre

Installer le client

Vous devez d'abord récupérer le fichier d'installation sur cette page: http://www.michaelstowe.com/backuppc/

Puis exécutez-le en administrateur. Après avoir accepté la licence d'utilisation, vous pourrez choisir le répertoire d'installation. Firewall Services recommande de conserver la valeur par défaut (C:\BackupPC).

Sélection du répertoire d'installation

L'étape suivante vous demande un identifiant et un mot de passe. Il ne s'agit pas d'un utilisateur WIndows, ni un utilisateur du domaine. C'est simplement un couple identifiant / mot de passe qui sera utilisé entre la machine Windows et le serveur BackupPC pour l'authentification. Vous pouvez mettre ce que vous voulez. Firewall Services recommande l'utilisation d'un mot de passe fort, généré aléatoirement. Vous pouvez par exemple générer un mot de passe aléatoire depuis votre iPasserelle (ou une autre machine Linux) avec la commande:

openssl rand -base64 35

Vous pourrez toujours changer l'identifiant et le mot de passe après l'installation en éditant le fichier C:\BackupPC\rsyncd.secret

Remplacer les scripts

Une fois l'agent installé, il faut remplacer certains fichiers fournit par défaut par des versions légèrement modifié (pour ajouter le support de plusieurs partitions)

Téléchargez les fichier suivants, et copiez les dans le répertoire C:\BackupPC\

REM it's possible to snapshot several partition, just use something like: REM SET PART=c: e: f: SET PART=c:
use chroot = false strict modes = false pid file = rsyncd.pid socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=65536 [PART1] path = /cygdrive/A/ auth users = backup secrets file = rsyncd.secrets [PART2] path = /cygdrive/B/ auth users = backup secrets file = rsyncd.secrets [PART3] path = /cygdrive/L/ auth users = backup secrets file = rsyncd.secrets [PART4] path = /cygdrive/M/ auth users = backup secrets file = rsyncd.secrets
cd \backuppc call part.cmd vshadow -script=vss-setvar.cmd -exec=vsrsync.cmd %PART%
REM @ECHO OFF REM ***************************************************************** REM REM VSRSYNC.CMD - Batch file template to start your rsync command (s). REM REM By Michael Stowe REM ***************************************************************** call vss-setvar.cmd cd \BackupPC SET CWRSYNCHOME=\BACKUPPC SET CYGWIN=nontsec SET CWOLDPATH=%PATH% SET PATH=\BACKUPPC;%PATH% dosdev B: %SHADOW_DEVICE_1% if "%SHADOW_DEVICE_2%" NEQ "" dosdev L: %SHADOW_DEVICE_2% if "%SHADOW_DEVICE_3%" NEQ "" dosdev M: %SHADOW_DEVICE_3% if "%SHADOW_DEVICE_4%" NEQ "" dosdev N: %SHADOW_DEVICE_4% REM Go into daemon mode, we'll kill it once we're done rsync -v -v --daemon --config=rsyncd.conf --no-detach --log-file=diagnostic.txt dosdev -r -d B: if "%SHADOW_DEVICE_2%" NEQ "" dosdev -r -d L: if "%SHADOW_DEVICE_3%" NEQ "" dosdev -r -d M: if "%SHADOW_DEVICE_4%" NEQ "" dosdev -r -d N:

Configurer le par feu

Deux réglages sont nécessaires pour que le serveur BackupPC puisse sauvegarder votre machine Windows:

Le port utilisé par rysncd soit être accessible. Il s'agit du port TCP 873 par défaut. On peut aussi autoriser le binaire C:\BackupPC\rsync.exe au lieu de préciser un port

Le port 445 doit être accessible. Il est utilisé par BackupPC pour demander la prise des snapshots avant la sauvegarde

Ces réglages peuvent être fait en ligne de commande:

set BACKUP_SERVER_IP=192.168.7.1 netsh firewall delete allowedprogram "%SYSTEMDRIVE%\BackupPC\rsync.exe netsh firewall add allowedprogram "%SYSTEMDRIVE%\BackupPC\rsync.exe" "Agent BackupPC" enable custom "%BACKUP_SERVER_IP%" netsh firewall add portopening TCP 445 "remote admin" enable custom "%BACKUP_SERVER_IP%"

Configurer l'utilisateur

Pour pouvoir prendre des snapshots et vous assurer que tout puisse être sauvegardé sans problème d'accès, il faut que toutes ces opérations soient exécutées par un utilisateur membre du groupe local Administrateur. L'utilisateur lui-même peut être du domaine (c'est même conseillé de déclarer un utilisateur sur votre iPasserelle). Vous n'avez qu'à ajouter l'utilisateur voulu dans le groupe Administrateurs. Par exemple, si votre domaine NT est FIREWALL.LOCAL et que votre utilisateur est backup:

net localgroup Administrateurs FIREWALL.LOCAL\backup /add

Configuration

Configuration sur le poste Windows

Sur le poste Windows, vous devez maintenant éditer le fichier C:\BackupPC\part.cmd pour indiquer quelles partitions doivent être sauvegardées, par exemple:

REM it's possible to snapshot several partition, just use something like: REM SET PART=c: e: f: SET PART=c: e: f:

La limite est de 4 partitions

Configuration sur le serveur BackupPC

Il ne vous reste plus qu'à déclarer une nouvelle machine à sauvegarder sur l'interface de BackupPC, vous pouvez utiliser ce fichier comme point de départ, et l'adapter à vos besoin:

$Conf{BackupFilesOnly} = { 'PART1' => [ 'Users' ] }; $Conf{ClientNameAlias} = '192.168.7.12'; $Conf{DumpPostUserCmd} = '/usr/bin/win-post-backup $host $xferOK'; $Conf{DumpPreUserCmd} = '/usr/bin/win-pre-backup $host'; $Conf{RsyncShareName} = [ 'PART1', 'PART2' ]; $Conf{RsyncdPasswd} = 'mot_de_passe'; $Conf{RsyncdUserName} = 'backuppv'; $Conf{XferMethod} = 'rsyncd'; $Conf{UserCmdCheckStatus} = '1';