Comment Sauvegarder Microsoft Exchange 2003

Publié le par Teruin

 

 

 

Comment sauvegarder les bases Exchange avec Ntbackup

 

 

 

Les bases Exchanges peuvent être sauvegardée sur disque ou sur banque avec l’outils Ntbackup fourni en standard par Microsoft Corp.

Un des nombreux avantages est de se passer d’agent spécialisés souvent fort cher et qui ne font que rajouter de la complexité dans un domaine ou la simplicité est bien souvent un facteur de réussite.


De plus, l’outil Ntbackup est comme son nom le laisse penser un outil interne à Microsoft Coporation qui l’utilise en interne pour sauvegarder à Redmond ses bases Exchange.

 

Les inconvénients majeurs de cette solution sont de ne pas pouvoir offrir un niveau de  granularité important. Ntbackup se limite à la sauvegarde, soit des groupes de stockage soit à des banques d’information. Ntbackup ne sait pas effectivement sauvegarder contrairement aux agents tiers ; les  boites aux lettres de façon unitaire.

 

En réalité, la sauvegarde boites aux lettres par boites aux lettres est restreinte à des petits volumes de messagerie et ne vous dispense pas de sauvegarder l’ensemble des banques d’information. Seule cette dernière sauvegarde vous permettra de ‘remonter’ l’ensemble en cas de corruption générale. La sauvegarde boites aux lettres par boites aux lettres n’étant qu’une option de confort pour les personnes chargée de la restauration. De plus les temps de sauvegarde Bal par Bal sont très long et ne permettent pas d’être utilisés avec des volumes importants.

 

 

Comment sauvegarde t’on avec Ntbackup ?

 

 

Les manipulations à effectuées sont extrêmement simples. Dans un premier temps lancer ntbackup et décocher l’option ‘toujours lancer en mode assistant’. Refermer Ntbackup relancer le. Faites ensuite vos courses ! Sélectionner ce que vous voulez sauvegarder et enregistrer le tout dans un fichier BKF, de préférence dans un répertoire situé à la racine (c:\ntbackup). Planifier la tâche comme vous le voulez et indiquer un fichier BKF ou une destination sur bande.

 

Pour le compte devant exécuter la tâche je vous conseille de créer un  utilisateur ntbackup devant être membre du groupe opérateur de sauvegarde et administrateur de la machine ou du domaine, si vous projetez d’effectuer cette opération sur plusieurs serveur.

Allez dans « tâches planifiées », récupérer la ligne de commande de la tâche et supprimer cette dernière. Effectuer un copiez coller dans un nouveau fichier appeler saveme.bat localisé dans le répertoire c:\ntbackup.

Exemple de ligne de commande généré par l’interface graphique

 

C:\WINDOWS\system32\ntbackup.exe backup "@C:\NTBACKUP\MONSERVEUR.bks" /n "MONSERVEUR" /d "Set created 11/16/2004 at 10:50 AM" /v:no /r:no /rs:no /hc:off /m normal /j "Sauvegarde MONSERVEUR SYS & SYSSTATE" /l:s /f "\\ZZSMAILUTL1\NTBACKUP$\MONSERVEUR.BKF"

 

 

Renvoyer le contenu par Mail

 

Pour renvoyer le contenu de la sauvegarde par mail récupérer le shareware « blat » et copier l’exécutable dans le répertoire de Windows.

 

Lancer ensuite la commande blat –install nom-du-serveur-smtp qui à pour but d’initialiser le produit blat.exe.

Dans le script de sauvegarde il vous faut récupérer le log de la sauvegarde effectuer par NTbackup. Ce dernier se trouve dans le profil du compte exécutant la tâche (utilisateur Ntbackup par exemple).  Les commandes suivantes récupèrent les log et les renvoient vers un fichier unique.

 

C:

 

cd \ntbackup

 

del result.log

 

cd "C:\Documents and Settings\ntbackup\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data"

 

copy *.log c:\ntbackup\result.log

 

del *.log

 

 

La commande suivante renvoi le tout par messagerie en tant que ntbackup@itpro.fr  vers une liste de distribution ‘dl_saveresult@itpro.fr’

 

blat C:\ntbackup\result.log -t DL_Saveresult@itpro.fr  -f ntbackup@itpro.fr -subject "ITPRO: Résultat Sauvegarde MONSERVEUR" –mime

 

 

Un script pour tous les serveurs

 

Le script suivant fonctionnera avec l’ensemble de vos serveurs. Nous lui avons ajouté un script VBS qui récupère le nombre de ‘’Warning’’ de ‘’Backup incomplète’’ et ‘’Skipped’’ dans le log de Ntbackup et précise cette information dans le sujet du mail renvoyé.

 

Contenu du saveme.bat

 

REM SCRIPT : SAVEME.BAT

 

REM AUTEUR : LAurent Teruin Permis Informatique

 

REM DATE   : 16 Novembre 2003

 

REM BUT    : Sauvegarde de l'Active Directory et de la partition SYS

 

 

REM *****   SUPPRESSION DES JOURNAUX

 

  C:

 

  cd \ntbackup

 

  del *.log

 

  cd "C:\Documents and Settings\ntbackup\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data"

 

 

REM *****   LANCEMENT DES COMMANDES DE SAUVEGARDES

 

  ntbackup.exe backup "@C:\NTBACKUP\%COMPUTERNAME%.bks" /n %COMPUTERNAME% /d "Set created 11/16/2004 at 10:50 AM" /v:no /r:no /rs:no /hc:off /m normal /j "Sauvegarde %COMPUTERNAME% SYS & SYSSTATE" /l:s /f "\\ZZSMAILUTL1\NTBACKUP$\%COMPUTERNAME%.BKF"

 

  copy *.log c:\ntbackup\result.log

 

  del back*.log

 

 

REM *************  PREPARATION DU MESSAGE ET ENVOI

 

  C:

 

  cd \ntbackup 

 

  type result.log | cscript /nologo quickgrep.vbs -i

 

  SET RESULT2=ITPRO:Sauvegarde %COMPUTERNAME% %RESULT%

 

  blat C:\ntbackup\result.log -t DL_Saveresult@ITPRO.fr  -f ntbackup@ITPRO.fr -subject %RESULT2% -mime

 

 

 

 

Contenu du script VBS Quickgrep

'

 

'       Script de filtrage rapide

 

'

 

'       Auteur: Fabrice Gatille Permis Informatique

 

'       Version: 1.0

 

'       Date : 17/11/2004

 

'

 

Set oArgs = Wscript.Arguments

 

Set oCount = CreateObject("Scripting.Dictionary")

 

Set oFS = CreateObject("Scripting.FileSystemObject")

 

Set oRegEx = New RegExp

 

Set WshShell = WScript.CreateObject("WScript.Shell")

 

Set WshEnv = WshShell.Environment("PROCESS")

 

File = 0

 

 

VarName = "RESULT"

 

oCount.Add "Warning", Array("warning",0)

 

oCount.Add "Backup completed", Array(".*backup completed.*",0)

 

oCount.Add "Skipped", Array(".*skipped.*",0)

 

 

Sub Usage()

 

   Wscript.Stderr.WriteLine "quickgrep.vbs v1.0"

 

   Wscript.Stderr.WriteLine "Usage : counter [file] [-i]"

 

   Wscript.Stderr.WriteLine ""

 

   Wscript.Stderr.WriteLine "file: optional input file, pipe & stdin allowed" 

 

   Wscript.Quit(1)

 

End Sub

 

 

If oArgs.Count > 0 Then

 

        For Each Arg in oArgs

 

         If oFS.FileExists(Arg) Then

 

                 Set oInputF = oFS.OpenTextFile(Arg,1,False)

 

                 File = 1

 

         ElseIf LCase(Arg) = "-i" Then

 

                 oRegEx.IgnoreCase= True      

 

         End If

 

        Next

 

End If

 

 

If File = 0 Then

 

        Set oInputF = Wscript.Stdin

 

End If

 

 

Do While oInputF.AtEndofStream = False

 

  sLine = oInputF.Readline()

 

      

 

        For Each Key in oCount.Keys()                 

 

                        oRegEx.Pattern = oCount(key)(0)               

 

                        Set oMatches = oRegEx.Execute(sLine)                   

 

                        If (oMatches.Count > 0) Then                          

 

                                oCount(key) = Array(oCount(key)(0),oCount(Key)(1)+1)                                                          

 

                        End If

 

  Next

 

Loop

 

 

If File=1 Then

 

        oInputF.Close

 

End If

 

sLine=""

 

 

For Each Key in oCount.Keys() 

 

  If Len(sLine) > 0 Then

 

        sLine = sLine + " "

 

  End If

 

        sLine =  sLine + Key & ": " & oCount(key)(1)  

 

Next

 

 

Wscript.Echo VARNAME&"="&sLine

 

WshShell.Environment("SYSTEM").Item(VARNAME) = sLine

 

 

 

 

 

 

 

 

 

 

Commenter cet article