Avatar billede freos Nybegynder
13. september 2004 - 11:00 Der er 2 kommentarer og
1 løsning

Hjælp til backup script

Hej Exp.dk

Har fundet et VBS script på nettet som går ind og laver backup af de mapper som der nu bliver skrevet i scriptet.

Meningen er at scriptet skal køres en gang om ugen hvor den skal kopier samtlige mapper og filer over som vi definere i scriptet.

Problemmet er at den kun kopier de filer over som er nye eller redigeret siden den sidste gang lavede backup, hvilket betyder at de filer som der ikke er blevet rettet i blvier der ikke taget backup af.

Backup.vbs
=========================================

Const ForWriting = 2
count = 0
sti = ""
'---------------------
' Log File (back.txt):
'---------------------
Set fs = CreateObject("Scripting.FileSystemObject")
'Set tf = fs.OpenTextFile("C:\back.txt", ForWriting, True)
'prnt date & " " & time
dato = replace(date,"/","-")
'================================================================================
' P  : Path
' BF : Backup File
'      Filenames may use wildcards - but only at end of filename and/or extension
'      Ex:    OK: dat*.n*, *.*
'          not OK: *dag.*x
' BD : Backup Directory
'================================================================================
' BackUp destination folder:
'-------------------------
Bfolder = "C:\backup\" & dato & " " & tid
'-------------------------

P "C:\Inetpub\"
BD "wwwroot"
'============================================================

'prnt FileCount

'tf.Close
'Set tf = nothing
Set fs = nothing

'MsgBox FileCount

'============ END =============== SUBROUTINES :

'--------------------------------
' P : Set Path
'--------------------------------
Sub P(path)
  sti = path
  if right(sti, 1) <> "\" then sti = sti + "\"
'  prnt ""
'  prnt "===" & sti
End Sub

'--------------------------------
' BF : Back File
'--------------------------------
Sub BF(navn)
  if instr(navn,"*") then
    s1 = ""
    s2 = ""
    pp = instr(navn,".")
    f1 = left(navn,pp-1)
    f2 = mid(navn,pp+1)
    p1 = instr(f1,"*")
    p2 = instr(f2,"*")

    if p1 then s1 = left(f1, p1-1)
    if p2 then s2 = left(f2, p2-1)

    BackWild
  else
    set f = fs.GetFile(sti & navn)
    BackFile f
  end if
End Sub

'--------------------------------
' BD : Back Directory
'--------------------------------
Sub BD(navn)
  f = sti & navn
'  prnt "    \" & navn
  BackFolder f
End Sub

'--------------------------------
' BackFile
'--------------------------------
Sub BackFile(f)
  if f.Attributes and 32 then
      dfn = Bfolder & mid(f.ParentFolder, 3)
      if right(dfn, 1) <> "\" then dfn = dfn + "\"

      if not fs.folderexists(dfn) then FolderCreate dfn
      fs.Copyfile f, dfn & f.name
      f.Attributes = f.Attributes - 32

'    prnt "*  " & f
      count = count + 1
  end if
End Sub

'-------------------------------
' BackWild
'-------------------------------
Sub BackWild()
  Set f = fs.GetFolder(sti)
  set fc = f.files
  for each fil in fc
      ext = mid(fil.name,instr(fil.name,".")+1)
      w = (left(fil.name,len(s1)) = s1 AND left(ext,len(s2)) = s2)
      if w then BackFile fil
  next
End Sub

'-------------------------------
' backFolder
'-------------------------------
Sub BackFolder(fn)
  Set f = fs.GetFolder(fn)
  set fc = f.files
  for each fil in fc
      backFile fil
  next

  Set sf = f.SubFolders
  For Each f1 in sf
      If Left(f1.name, 4) <> "_vti" then BackFolder f1.path
  Next
End Sub

'----------------------------

Sub we(s)
  wscript.echo s
End Sub

Sub prnt(s)
  we s
  tf.Writeline s
End Sub

Function FileCount()
  if count = 1 then
    FileCount = "1 fil"
  else
    FileCount = count & " filer"
  end if
End Function

Sub FolderCreate(fn)
  pfn = fs.GetParentFolderName(fn)
  if not fs.folderexists(pfn) then FolderCreate pfn
  fs.CreateFolder fn
End Sub

Mvh.

Freos
Avatar billede martin_moth Mester
13. september 2004 - 11:50 #1
Og det er vel ikke noget problem?

Hvis der ikke er ændret i filen, er der jo ingen grund til at tage en ny backup af den

I øvrigt er det måske bedre at spørge i VB Script kategorien, nu der er tale om VB script :o)
Avatar billede freos Nybegynder
13. september 2004 - 12:21 #2
Jo det er et problem da min chef gerne vil have at der bliver taget backup af alt også selvom at der ikke er blevet lavet om i filen.

Og tror jeg smider den over i VBScript kategorien så :)
Avatar billede martin_moth Mester
13. september 2004 - 14:37 #3
Jamen - det er jo ikke andet end spild af tid og ressourcer at tage backup af en fil der allerede er taget backup af - det bliver jo ikke "dobbelt så sikkert" af at tage backupen en gang til. Tværtimod øger det risikoen for at beskadige filen (selvom risikoen er minimal).

Anyway - det er ham/hende der er bossen, så der er ikke meget at gøre ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Quadsat ApS

Software Developer

Netcompany A/S

Linux Operations Engineer

TD SYNNEX Denmark ApS

Sales Coordinator

Digitaliseringsstyrelsen

IT-arkitekt hos Digitaliseringsstyrelsen

Capgemini Danmark A/S

AI/Data Engineer