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
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
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 :
REM DATE : 16 Novembre 2003
REM BUT : Sauvegarde de l'Active Directory et de
REM ***** SUPPRESSION DES JOURNAUX
C:
cd \ntbackup
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







Commentaires