niedziela, 7 września 2014

Skrypt tworzący backup katalogu - VBS cz.12

Następną koniecznością w firmie było stworzenie narzędzia, przy pomocy którego możliwe było skopiowanie konkretnego katalogu zawierającego ustawienia maszyn. Tym samym zabezpieczyliśmy się na wypadek uszkodzenia dysku komputera przed utratą ważnych ustawień maszyny.

1) Sprawdzenie włączonych maszyn oraz utworzenie katalogów przechowujących backup.

Poniższa funkcja sprawdza, która maszyna jest włączona oraz na dysku przeznaczonym na backup tworzony jest katalog z ich nazwą.
function Backup() ' maszyny Online+ tworzenie katalogow na dysku

Set WshShell = CreateObject("WScript.Shell")
  Dim computerPing,iter, objFSO,objCreateTextFile,objTextFile
 computerPing="10.10.10"

 Set objFSO= CreateObject("Scripting.FileSystemObject")
  for iter = 21 To 26 Step 1 
   PINGFlag = Not CBool(WshShell.run("ping -n 1 " & computerPing & "." & iter,0,True))
      If PINGFlag = True Then
       
sourceKat = "\\" & computerPing & "." & iter & "\C\linearfab\*"
   sourceFile=  "\\" & computerPing & "." & iter & "\C\linearfab\*.*"
'objTextFile.Close
folderName = "F:\Fab" 
  
  destinationFolder= folderName & Right(iter,1) & "_" & Date()
  
   IF objFSO.FolderExists(destinationFolder) = FALSE THEN
objFSO.CreateFolder destinationFolder
ELSE
END IF
Call Kat(sourceKat,destinationFolder)
Call File(sourceFile,destinationFolder) 
     Else
      
     b=""
         Backup=b
     End If
  Next 
 end Function






2)Poniższe procedury odpowiadają za kopiowanie katalogów z maszyn na dysk backupu. Wywoływane są w powyższej funkcji.
Sub Kat (sourcePath, destinationPath)
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

fso.CopyFolder sourcePath, destinationPath
end sub


Sub File(sourcePath,destinationPath)
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

fso.CopyFile sourcePath, destinationPath
end sub 



4)Ostatnią procedurą jest kopiowanie backupu na drugi dysk, dzięki czemu mamy mirrioring naszego backupu na drugim dysku na wszelki wypadek, gdyby podstawowy uległ uszkodzeniu.

Sub MirroringBackups

 Dim fso, mainFolder, subFolder, LastModified,howManyDays

 Set fso = WScript.CreateObject("Scripting.FileSystemObject")
 GetMyFolder= "F:\"
 GetMyMirrorFolder="G:\"
 howManyDays=180 'ile dni mają być trzymane katalogi

 Set mainFolder = fso.GetFolder(GetMyFolder)
 Set subFolder = mainFolder.SubFolders

  For Each fi In subFolder

   GetMyFolder= fi.Path
   LenDestinationFolder = len(GetMyFolder)
   destinationFolder = GetMyMirrorFolder & MID(GetMyFolder,4,LenDestinationFoder)
   
   ShortFolderName = MID(GetMyFolder,4,3)
   
   if ShortFolderName="Cat" or ShortFolderName="Fab"  Then
      
      Call Kat(GetMyFolder,destinationFolder)
 
   else
     
   end if
   
  Next

End Sub  



Brak komentarzy:

Prześlij komentarz