[Batch] Script pour copie de sauvegarde et nettoyage de fichiers + log
Bonjour
Je debute dans le monde du scripting autant dire que je suis pas tres doué.
En fonction de ce que je peux trouver j'essaie de monter un script qui fera les actions suivantes:
- Copie de la sauvegarde SQL du client vers serveur de fichier
- Suppression de la sauvegarde sur le client
- Suppression sur le serveur de fichiers des backups > 7 jours
J ai navigué sur les forums et les sites, j en suis arrive a ca mais cela ne fonctionne pas, il indique une erreur if attendu ligne 85. j aimerais vos lumieres parce que je galere.
'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| ============== Définition des variables publiques ===============
Public oFichierLog
'============== Déclaration des variables ======================
Dim oFsoFichierLog
Dim oFS
Dim oFl
Dim oFSO
'============== Déclaration des constantes =====================
CONST sCheminSource = "\\vir-86921a1a162\c$\bckup_fusion\*.*"
CONST sCheminBackup = "\\2003r2srv\c$\sauvegarde_base_sql\affranchissement\"
CONST sNomFichierLog = "\\2003r2srv\c$\sauvegarde_base_sql\Logs_script_affranchissement\affranchissement.log"
CONST DELAI = 7
CONST iScriptID = 0
' ================================ Main ====================
' Test si paramtre GO Okay
if wscript.arguments.Count < 1 then
wscript.echo "Argument manquant. Lancer le script avec le paramètre GO"
wscript.Quit(1)
else
if lcase(wscript.arguments(0)) <> "go" then
wscript.echo "Argument incorrecte."
wscript.quit(1)
end if
' Tentative d'ouverture du fichier de log
set oFsoFichierLog = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set oFichierLog = oFsoFichierLog.OpenTextFile(sNomFichierLog, 8, True)
If Err.Number <> 0 Then
On Error GoTo 0
Wscript.Echo "Impossible d'ouvrir le fichier " & sNomFichierLog
Set oFsoFichierLog = Nothing
Wscript.Quit(1)
End If
call log(iScriptID, "", "Info")
call log(iScriptID, "==== " & Date() & " " & Time() & " - Debut du script " & wscript.scriptname & " ====", "Info")
call fCopyBackup (sCheminSource)
call fDeleteBackup (sCheminSource)
call fMenageRep1(sCheminBackup)
call log(iScriptID, "==== " & Date() & " " & Time() & " - Fin du script " & wscript.scriptname & " ====", "Info")
call log(iScriptID, "", "Info")
'============================== Function ===================
' Partie du script qui copie les fichiers de backup depuis le client vers le serveur de fichiers
function fCopyBackup (sCheminSource)
on error resume next
wscript.echo sCheminSource
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CopyFile " & sCheminSource, " & sCheminBackup
End function
' partie du script qui supprime les fichiers locaux qui ont ete copies sur le serveur de fichiers
function fDeleteBackup (sCheminSource)
on error resume next
wscript.echo sCheminSource
Set oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFile " & sCheminSource,True"
' Le parametre True permet d'effacer les fichiers en lecture seule.
End function
' Partie du script qui supprime les backup datant de plus de 7 jours
function fMenageRep1 (sCheminBackup)
on error resume next
wscript.echo sCheminBackup
Set fso = CreateObject ("Scripting.FileSystemObject")
Set Folder = fso.GetFolder(sCheminBackup)
Set Files = folder.files
For each folderIdx In files
If DateDiff ("d", file.DateLastModified, Now)>DELAI then
call log (iscriptID, "information - Suppression de " & folderIdx.path, "- info")
oFSO.DeleteFile (folderIdx.path)
If err.number > 0 then
call log (iscriptID, "information - Erreur lors de la suppression de " & folderIdx.path & "-" & err.number & "-" & err.description, "- Info")
err.clear
End if
End function
'Fonction de reporting des évènements dans le ficheir de log
Function log(script_id, error_mesg, etat)
wscript.Echo error_mesg
oFichierLog.writeline error_mesg
'call log_db(script_id, error_mesg, etat, errCounter)
end function |
De meme, rien ne se renseigne dans mon fichier de log.
En attendant, d'avoir vos lumieres vais retourner dans mes recherches
d'avance merci de votre aide