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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| '------------------------
'Declaration variables
'------------------------
Dim Centre, Plaque, Source, Destination, Safe, Fold, Fich, Log, Files, f, f1, fc
Dim objFSO, FileLog, oShell, WshShell, oFS
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objArgs = Wscript.Arguments
VERSION="1.00"
centre = objArgs(0)
Select Case Centre
Case "Paris"
Plaque="Primaire"
Case "Toulouse"
Plaque="Primaire"
Case "Monaco"
Plaque="Primaire"
Case "Rennes"
Plaque="Secondaire"
Case "Rouen"
Plaque="Secondaire"
Case Else
Wscript.echo "Erreur dans le parametre"
wscript.quit(2)
End Select
'-------------------------------------------------------------------
'Définission des chemins utilisés pour chaque centre
'-------------------------------------------------------------------
MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now)
Log="E:\Appli\Log\Historique\Donnees_" & centre & "_"& MyDate &".log"
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
Set FileLog = FSO.CreateTextFile(Log)
Source = "E:\Appli\Centre_" & plaque & "\Site_" & Centre & "\Sauvegardes"
Destination = "K:\Sauvegarde\Centre_" & plaque & "\Arch_Sauvegardes_" & Centre & "_" & MyDate & ".zip"
Safe = "K:\Sauvegarde\Centre_" & plaque & "\"& Centre &"\Safe_Tempo"
'-----------------------------------------------------
'Initialisation des log pour chaque centre
'-----------------------------------------------------
Sub Msglog(severite,code,label)
wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label)
end sub
'---------------------------------------------------------------------------------------------------------------------------------------
'Test si le dossier Safe_Tempo est bien absent OK = Création = Si présent = Warning Arrêt du Traitement pour chaque centre
'---------------------------------------------------------------------------------------------------------------------------------------
Sub Verif_Safe_Tempo
msglog "0","0000","---Debut:------- Verification que le Dossier Safe_Tempo n'existe pas pour le centre " & centre
set objFSOC = CreateObject("Scripting.FileSystemObject")
If objFSOC.FolderExists (Safe) Then
Msglog "1","0001","---WARNING:----- Traitement annulé le Dossier Safe_Tempo existe déja pour le centre" & centre
wscript.quit (8)
Else
msglog "0","0000","---Resultat:---- Le Dossier Safe_Tempo n'existe pas donc il est créé pour le centre " & centre
msglog "0","0000","Safe=" & Safe
Set objFolderC = objFSOC.CreateFolder(Safe)
End If
msglog "0","0000","---Fin:--------- Verification que le Dossier Safe_Tempo n'existe pas pour le centre " & centre
End Sub
'--------------------------------------------------------------------------------------------------
'Copie des sous-dossiers de + de 30 jours Source dans le dossier Safe_Tempo
'---------------------------------------------------------------------------------------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
AgeMaximalFichiers = 30
DateSysteme = Date
Sub Copie_des_fichiers()
msglog "0","0000","---Debut:------- Copie des fichiers dans le Dossier Safe_Tempo pour le centre " & centre
Set Fold = objfso.Getfolder(Source)
msglog "0","0000","---Fin:--------- Copie des fichiers dans le Dossier Safe_Tempo pour le centre " & centre
For Each Fold In Fold.Files
If (DateDiff("d", Fold.DateLastModified, DateSysteme ) < AgeMaximalFichiers) Then
Else
If Fold.Attributes And 1 Then Fold.Attributes = Fold.Attributes - 1
Fold.Copy Safe & "\" , True
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFolder (Source), (Safe)
Next
End Sub
'-------------------------------------------------------------------------------------------------------------------
'Compression du dossier safe contenant les fichier.bak de + de 30 jours pour chaque centre
'-------------------------------------------------------------------------------------------------------------------
Sub Compress
Set oShell = Wscript.CreateObject("Wscript.Shell")
msglog "0","0000","---Debut:------- Compression du Dossier " & Destination & " pour le centre " & centre
ZIP_CMD = "D:\7-Zip\7z.exe"
oShell.Run chr(34) & ZIP_CMD & chr(34) & " a -tzip -y " & Destination & " " & Safe, 0,True
msglog "0","0000","---Fin:--------- Compression du Dossier " & Destination & " pour le centre " & centre
End sub
'-------------------------------------------------------------------------
'Suppression du dossier Safe_Tempo pour chaque centre
'------------------------------------------------------------------------
Const DeleteReadOnly = TRUE
Sub Supp_Safe_Tempo
msglog "0","0000","---Debut:------- Suppression du Dossier Safe_Tempo pour le centre " & centre
Set objFSO = CreateObject ("Scripting.FileSystemObject")
objFSO.DeleteFolder "K:\Sauvegarde\Centre_" & plaque & "\FluxTP\"& Centre &"\Safe_Tempo", DeleteReadOnly
msglog "0","0000","---Fin:--------- Suppression du Dossier Safe_Tempo pour le centre " & centre
End sub
'-------------------------------------------------------------------------------------------------------------------
'Suppression des sous dossiers de + de 30 jours dans le dossier Source pour chaque centre
'-------------------------------------------------------------------------------------------------------------------
Sub DeleteFolder()
DateSysteme = Date
Set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.GetFolder(Source)
Set fc = f.subFolders
For Each f1 in fc
if (DateDiff("d", F1.DateLastModified , DateSysteme) ) > 30 Then f1.delete
Next
End Sub
'------------------
' Corps su script
'------------------
msglog "0","0000","---Debut:------- Sauv_Donnees.vbs "
Verif_Safe_Tempo
Copie_des_fichiers
Compress
Supp_Safe_Tempo
DeleteFolder
msglog "0","0000","---Fin:--------- Sauv_Donnees.vbs"
FileLog.Close |
Partager