Création d'un .bat pour sauvegarde auto
Résolu/Fermé
A voir également:
- Création d'un .bat pour sauvegarde auto
- Fichier bat - Guide
- Logiciel de sauvegarde - Guide
- Création organigramme - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
5 réponses
je sais pas si c'est toujours d'actualité pour robocopy mais si cela peut te servir:
nom du fichier : robocopy.bat
voici mon script robocopy :
__________________________________________________________________________________________
SET LOG="D:\Test\log\log.txt"
SET DEST="d:\Test\destination"
SET SOURCE="d:\Test\source"
c:
robocopy %SOURCE% %DEST% /MIR /LOG:%LOG% /R:1 /W:2
cscript "D:\robocopy\robocopy_checker.vbs"
__________________________________________________________________________________________
pour info le vbs me permet d'envoyer le rapport de sauvegarde par mail
Nom du fichier vbs : robocopy_checker.vbs (tu peux le renommer mais oublie pas de le faire aussi dans le .bat ou est renseigner le chemin du vbs)
txtSMTPServer : tu dois indiquer l'adresse de ton serveur smtp : par exemple : smtp.orange.fr
txtTo: adresse mail du destinataire
txtFrom : adresse mail de l'expéditeur
voici le vbs :
__________________________________________________________________________________________
'robocopy_checker.vbs
Dim txtSMTPServer, txtTo, txtFrom, txtSubject, txtBody
Dim txtLog, strValue, iTotal, iPos, strText
txtSMTPServer = " " 'SMTP server
txtTo = " " 'To Address
txtFrom = " " 'From Address
txtSubject = "Rapport de sauvegarde test" 'Subjet du mail
txtLog = "D:\Test\log\log.txt" 'chemin du fichier de log de robocopy
'Récupérer le contenu du fichier
FileContents = GetFile(txtLog)
'-- Cycle thru the log file to find errors --
strText = FileContents
iPos = 1
Do While iPos <= Len(strText)
If InStr(iPos, UCase(strText), "0X00000") > 0 Then
iTotal = iTotal + 1
iPos = InStr(iPos, UCase(strText), "0X00000")_
+ Len("0X00000")
Else
Exit Do
End If
Loop
'-- --
If iTotal > 0 Then
strErrors = 1
Else
strErrors = 0
End If
'Sortie significative en cas d'erreur de copie
If strErrors = 1 Then
txtBody = "La sauvegarde a détecté " & iTotal & " fichiers " &_
"qui n'ont pas pu être sauvegardés." &_
"Voir le fichier log ci-joint en pièce jointe pour vérifier les fichiers qui n'ont pas pu être copiés." & vbcrlf & "" &_
"Il est possible que ces fichiers soient liés à une application restée en cours d'exécution." & vbcrlf & "" &_
"Si vous avez des questions ou des problèmes liés à la sauvegarde n'hésitez pas à nous contacter"
Else
txtBody = "La sauvegarde a réussie. Pas d'erreur trouvée. " &_
"Si vous avez des questions ou des problèmes liés à la sauvegarde n'hésitez pas à nous contacter"
End If
'-- Envoie d'Email --
Const cdoSendUsingMethod = _
"http://schemas.microsoft.com/cdo/configuration/sendusing", _
cdoSendUsingPort = 2, _
cdoSMTPServer = _
"http://schemas.microsoft.com/cdo/configuration/smtpserver"
'// Créer les connexions CDO.
Dim iMsg, iConf, Flds
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
With Flds
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = txtSMTPServer
.Update
End With
'// Mettre les propriétés du message.
With iMsg
Set .Configuration = iConf
.To = txtTo
.From = txtFrom
.Subject = txtSubject
.TextBody = txtBody
End With
if txtlog <> "" then iMsg.AddAttachment txtLog
'// Send the message.
iMsg.Send ' send the message.
'-- Fonction de lecture du fichier --
function GetFile(txtLog)
If txtLog<>"" Then
Dim FS, FileStream
Set FS = CreateObject("Scripting.FileSystemObject")
on error resume Next
Set FileStream = FS.OpenTextFile(txtLog)
GetFile = FileStream.ReadAll
End If
End Function
__________________________________________________________________________________________
Si tu as besoin d'info n'hésite pas ;)
nom du fichier : robocopy.bat
voici mon script robocopy :
__________________________________________________________________________________________
SET LOG="D:\Test\log\log.txt"
SET DEST="d:\Test\destination"
SET SOURCE="d:\Test\source"
c:
robocopy %SOURCE% %DEST% /MIR /LOG:%LOG% /R:1 /W:2
cscript "D:\robocopy\robocopy_checker.vbs"
__________________________________________________________________________________________
pour info le vbs me permet d'envoyer le rapport de sauvegarde par mail
Nom du fichier vbs : robocopy_checker.vbs (tu peux le renommer mais oublie pas de le faire aussi dans le .bat ou est renseigner le chemin du vbs)
txtSMTPServer : tu dois indiquer l'adresse de ton serveur smtp : par exemple : smtp.orange.fr
txtTo: adresse mail du destinataire
txtFrom : adresse mail de l'expéditeur
voici le vbs :
__________________________________________________________________________________________
'robocopy_checker.vbs
Dim txtSMTPServer, txtTo, txtFrom, txtSubject, txtBody
Dim txtLog, strValue, iTotal, iPos, strText
txtSMTPServer = " " 'SMTP server
txtTo = " " 'To Address
txtFrom = " " 'From Address
txtSubject = "Rapport de sauvegarde test" 'Subjet du mail
txtLog = "D:\Test\log\log.txt" 'chemin du fichier de log de robocopy
'Récupérer le contenu du fichier
FileContents = GetFile(txtLog)
'-- Cycle thru the log file to find errors --
strText = FileContents
iPos = 1
Do While iPos <= Len(strText)
If InStr(iPos, UCase(strText), "0X00000") > 0 Then
iTotal = iTotal + 1
iPos = InStr(iPos, UCase(strText), "0X00000")_
+ Len("0X00000")
Else
Exit Do
End If
Loop
'-- --
If iTotal > 0 Then
strErrors = 1
Else
strErrors = 0
End If
'Sortie significative en cas d'erreur de copie
If strErrors = 1 Then
txtBody = "La sauvegarde a détecté " & iTotal & " fichiers " &_
"qui n'ont pas pu être sauvegardés." &_
"Voir le fichier log ci-joint en pièce jointe pour vérifier les fichiers qui n'ont pas pu être copiés." & vbcrlf & "" &_
"Il est possible que ces fichiers soient liés à une application restée en cours d'exécution." & vbcrlf & "" &_
"Si vous avez des questions ou des problèmes liés à la sauvegarde n'hésitez pas à nous contacter"
Else
txtBody = "La sauvegarde a réussie. Pas d'erreur trouvée. " &_
"Si vous avez des questions ou des problèmes liés à la sauvegarde n'hésitez pas à nous contacter"
End If
'-- Envoie d'Email --
Const cdoSendUsingMethod = _
"http://schemas.microsoft.com/cdo/configuration/sendusing", _
cdoSendUsingPort = 2, _
cdoSMTPServer = _
"http://schemas.microsoft.com/cdo/configuration/smtpserver"
'// Créer les connexions CDO.
Dim iMsg, iConf, Flds
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
With Flds
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = txtSMTPServer
.Update
End With
'// Mettre les propriétés du message.
With iMsg
Set .Configuration = iConf
.To = txtTo
.From = txtFrom
.Subject = txtSubject
.TextBody = txtBody
End With
if txtlog <> "" then iMsg.AddAttachment txtLog
'// Send the message.
iMsg.Send ' send the message.
'-- Fonction de lecture du fichier --
function GetFile(txtLog)
If txtLog<>"" Then
Dim FS, FileStream
Set FS = CreateObject("Scripting.FileSystemObject")
on error resume Next
Set FileStream = FS.OpenTextFile(txtLog)
GetFile = FileStream.ReadAll
End If
End Function
__________________________________________________________________________________________
Si tu as besoin d'info n'hésite pas ;)
wadcox
Messages postés
998
Date d'inscription
dimanche 16 juillet 2006
Statut
Membre
Dernière intervention
22 septembre 2011
222
5 juin 2009 à 11:32
5 juin 2009 à 11:32
bonjour,
Alors, moi je sauvegarde pleins de dossier sur 2003 server grâce à l'outil NTBACKUP.EXE
Va dans Démarrer/executer puis tape NTBACKUP.EXE.
ensuite planifier les travaux
et donne lui les dossiers à sauvegarder (pour toi c est Mes documents) donne lui l heure a laquelle elle doit commencer, si c est une sauvegarde normale, incrémentielle, différencielle (pour plus d infos sur les types de sauvegarde, tu peuc voir ca ici : https://fr.wikipedia.org/wiki/Sauvegarde#Sauvegarde_diff.C3.A9rentielle
Et ca se lancera tres bien chaque jour.
tu pourras voir le rapport en faisant Outils Option dans ntbackup.
pour les dossiers avec espace ex : document and setting : docume~1
sinon, un script sympa j'utilise un fichier backup.cmd et le logiciel Windows SCHEDULER:
dans le .CMD, rentre ca :
ECHO " LANCEMENT DU LOGICIEL DE SAUVEGARDE
ECHO.
ECHO.
START /WAIT NTBACKUP BACKUP C:\docume~1\nomdesession\etc... /F "g:\sauve.bkf" /J "SAUVEGARDE numours" /D "SAUVEGARDE" /V:no /UM
g: étant la lettre du lecteur de disque dur externe que j'utilise.
Voici maintenant le tuto pour le logiciel scheduler :
TUTO SAUVEGARDE WINDOWS SCHEDULER PAR WadCox
Etape 1 :
Formater DD externe en NTFS
Ecrire sur les disques chaque jour de la semaine.
Installer Windows Scheduler
Modifier le Backup.CMD selon ce que tu veux sauvegarder
Mettre le Bachup.CMD dans le C:
"vérifier que le disque dur externe possède la meme lettre de lecteur que celle donnée dans le Backup.cmd"
Clic droit pres de l'heure sur Scheduler et prendre : Schedule Task
Subjet : Titre (ex:sauvegarde planifiée)
Programm : ntbackup.cmd
Onglet Schedule :
Décoche "Do Not Schedule"
Choisir : Every Week, de monday à Friday, à 23h00 si la société est ouverte du lundi au vendredi.
Mettre le ntbachup.exe dans system32 si tu ne disposes pas d'un WIN XP PRO, sinon il y est d'origine.
Sauvegarder and EXIT.
Créer fichier planif.log dans C:
Clic droit sur le logo scheduler pres de l'heure et choisir "VIEW ALL TASKS"
Choisir "PREFERENCE", cocher LOGFILE et mettre C:\planif.log
Mettre sur le bureau un raccourcis de ntbackup.exe pour vérifier les sauvegarde.
double clic dessus et outils puis options, choisis la date du jour et double clic, et tu ara les explications sur la sauvegarde.
Alors, moi je sauvegarde pleins de dossier sur 2003 server grâce à l'outil NTBACKUP.EXE
Va dans Démarrer/executer puis tape NTBACKUP.EXE.
ensuite planifier les travaux
et donne lui les dossiers à sauvegarder (pour toi c est Mes documents) donne lui l heure a laquelle elle doit commencer, si c est une sauvegarde normale, incrémentielle, différencielle (pour plus d infos sur les types de sauvegarde, tu peuc voir ca ici : https://fr.wikipedia.org/wiki/Sauvegarde#Sauvegarde_diff.C3.A9rentielle
Et ca se lancera tres bien chaque jour.
tu pourras voir le rapport en faisant Outils Option dans ntbackup.
pour les dossiers avec espace ex : document and setting : docume~1
sinon, un script sympa j'utilise un fichier backup.cmd et le logiciel Windows SCHEDULER:
dans le .CMD, rentre ca :
ECHO " LANCEMENT DU LOGICIEL DE SAUVEGARDE
ECHO.
ECHO.
START /WAIT NTBACKUP BACKUP C:\docume~1\nomdesession\etc... /F "g:\sauve.bkf" /J "SAUVEGARDE numours" /D "SAUVEGARDE" /V:no /UM
g: étant la lettre du lecteur de disque dur externe que j'utilise.
Voici maintenant le tuto pour le logiciel scheduler :
TUTO SAUVEGARDE WINDOWS SCHEDULER PAR WadCox
Etape 1 :
Formater DD externe en NTFS
Ecrire sur les disques chaque jour de la semaine.
Installer Windows Scheduler
Modifier le Backup.CMD selon ce que tu veux sauvegarder
Mettre le Bachup.CMD dans le C:
"vérifier que le disque dur externe possède la meme lettre de lecteur que celle donnée dans le Backup.cmd"
Clic droit pres de l'heure sur Scheduler et prendre : Schedule Task
Subjet : Titre (ex:sauvegarde planifiée)
Programm : ntbackup.cmd
Onglet Schedule :
Décoche "Do Not Schedule"
Choisir : Every Week, de monday à Friday, à 23h00 si la société est ouverte du lundi au vendredi.
Mettre le ntbachup.exe dans system32 si tu ne disposes pas d'un WIN XP PRO, sinon il y est d'origine.
Sauvegarder and EXIT.
Créer fichier planif.log dans C:
Clic droit sur le logo scheduler pres de l'heure et choisir "VIEW ALL TASKS"
Choisir "PREFERENCE", cocher LOGFILE et mettre C:\planif.log
Mettre sur le bureau un raccourcis de ntbackup.exe pour vérifier les sauvegarde.
double clic dessus et outils puis options, choisis la date du jour et double clic, et tu ara les explications sur la sauvegarde.
Nunours
Messages postés
405
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
12 décembre 2011
20
5 juin 2009 à 16:25
5 juin 2009 à 16:25
Euh... ouais sauf que les seules contraintes que j'ai c'est que je dois utiliser (impérativement) robocopy sous forme de script et je dois pouvoir déplacer ce script avec l'exécutable pour sauvegarder sur n'importe quel pc sur lequel il serait présent.
wadcox
Messages postés
998
Date d'inscription
dimanche 16 juillet 2006
Statut
Membre
Dernière intervention
22 septembre 2011
222
5 juin 2009 à 16:47
5 juin 2009 à 16:47
ok alors le script est bon mais le programme je ne sais pas du tout
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nunours
Messages postés
405
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
12 décembre 2011
20
5 juin 2009 à 16:57
5 juin 2009 à 16:57
Jle remet comme je vois plus les message précédent au tiens:
at 16:21 /interactive "@echo off
robocopy "%USERPROFILE%\My Documents" U:\test /E
pause"
Voilà, donc quand je double clique sur mon script la sauvegarde se fait nickel. mais le lancement auto ne se fait pas, alors je me demandais 2 truc, 1: ne considère t'il pas que la sauvegarde est demandé pour demain???
Et si oui, comment la faire aujourd'hui?
(je ne re pas avant lundi en principe donc bon week-end^^)
at 16:21 /interactive "@echo off
robocopy "%USERPROFILE%\My Documents" U:\test /E
pause"
Voilà, donc quand je double clique sur mon script la sauvegarde se fait nickel. mais le lancement auto ne se fait pas, alors je me demandais 2 truc, 1: ne considère t'il pas que la sauvegarde est demandé pour demain???
Et si oui, comment la faire aujourd'hui?
(je ne re pas avant lundi en principe donc bon week-end^^)