none
Script para backup e redirecionar para uma pasta Share RRS feed

  • Pergunta

  • alguem sabe um script que faça um backup de uma pasta e jogue para uma pasta compartilhada?


    Na verdade.... irei pegar atraves do c$ a pasta de um usuario e copiar para minha maquina.
    David Dellacenta http://daviddellacenta.spaces.live.com || http://www.andersonpatricio.org || http://www.itcentral.com.br || http://lfdias.mvpbrasil.com.br || http://ffazzani.spaces.live.com
    sexta-feira, 4 de dezembro de 2009 18:22

Respostas

  • Olá,

    Verifique o script abaixo:


    Set objNetwork = CreateObject("Wscript.Network")
    strUserName = objNetwork.Username

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "\\cliente\c$\teste\"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "c:\teste2"


    ' NOME DO ARQUIVO DE LOG
    strLogFile = "C:\Documents and Settings\" & strUserName & "\Desktop\Backup-log.txt"


    arrTipos = split(arrTipos,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS COPIADOS EM: " & now
    objLogFile.WriteLine "==================================================="

    GeraLog strPasta
    LimpaDel strPasta
    ChecaArquivo strPasta

    wscript.echo "Fim do Script"
    wscript.quit



    Sub ChecaArquivo(strSubPasta)

    Set Folder = ObjFSO.GetFolder(strSubPasta)

    For each subFolder in Folder.SubFolders
       GeraLog SubFolder.Path
       LimpaDel SubFolder.path
       ChecaArquivo SubFolder.path

    Next

    End sub



    '====================================================================

    Sub GeraLog(strCaminho)


    Set objArq = ObjFSO.GetFolder(strCaminho)
    Set MyFiles = objArq.files 

    For Each MyFiles in objArq.Files
       strFileOrig = Myfiles.path
       strFileDest = strDest & MID(MyFiles.path,Len(strPasta),Len(Myfiles.path))

       if (objFSO.FileExists(strFileDest) = True) Then
          Set objFileDest = objFSO.GetFile(strFileDest)
          If DateDiff("d",objFileDest.DateLastModified,myfiles.DateLastModified) > 0 Then

             objFSO.Copyfile strFileOrig,strFileDest,True
             objLogFile.WriteLine "ARQUIVO SUBSTITUIDO : "  & myfiles.name &  " copiado em : " & Now
          End if
       Else
          pastapai = MID(RIGHT(myFiles.ParentFolder,LEN(myFiles.ParentFolder)),Len(strPasta),Len(myFiles.ParentFolder))
          dirDest = strDest
          arrTipos = split(pastapai,"\")
          For x = 0 to UBOUND(arrTipos)
             if objFSO.folderexists(dirDest & arrTipos(x)) = false Then
               objFSO.CreateFolder(dirDest & arrTipos(x))
               dirDest = dirDest & arrTipos(x) & "\"
             Else
               dirDest = dirDest & arrTipos(x) & "\"
             End if
          Next

    '      WSCRIPT.ECHO "NAO EXISTE"
          objFSO.Copyfile strFileOrig,strFileDest,True
          objLogFile.WriteLine "ARQUIVO NOVO : "  & dirDest & myfiles.name &  " copiado em : " & Now
       End if
    Next
    End sub

    '====================================================================

    Sub LimpaDel(strCaminho)


    Set objArq = ObjFSO.GetFolder(strCaminho)
    Set MyFiles = objArq.files 

    For Each MyFiles in objArq.Files
       strFileOrig = Myfiles.path
       strFileDest = strDest & MID(MyFiles.path,Len(strPasta),Len(Myfiles.path))

       if not (objFSO.FileExists(strFileDest) = True) Then
          objLogFile.WriteLine "ARQUIVO DELETADO : "  & dirDest & myfiles.name &  " em : " & Now
       End if
    Next
    End sub


    Da maneira que esta o script... ele copia e cria um log no desktop do micro que irá executar o script.


    Faça os testes e nos retorne.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    • Marcado como Resposta David182 quarta-feira, 9 de dezembro de 2009 11:03
    segunda-feira, 7 de dezembro de 2009 11:41

Todas as Respostas

  • Olá,

    Verifique o script abaixo:


    Set objNetwork = CreateObject("Wscript.Network")
    strUserName = objNetwork.Username

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Coloque aqui a pasta que será verificada
    strPasta = "\\cliente\c$\teste\"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "c:\teste2"


    ' NOME DO ARQUIVO DE LOG
    strLogFile = "C:\Documents and Settings\" & strUserName & "\Desktop\Backup-log.txt"


    arrTipos = split(arrTipos,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS COPIADOS EM: " & now
    objLogFile.WriteLine "==================================================="

    GeraLog strPasta
    LimpaDel strPasta
    ChecaArquivo strPasta

    wscript.echo "Fim do Script"
    wscript.quit



    Sub ChecaArquivo(strSubPasta)

    Set Folder = ObjFSO.GetFolder(strSubPasta)

    For each subFolder in Folder.SubFolders
       GeraLog SubFolder.Path
       LimpaDel SubFolder.path
       ChecaArquivo SubFolder.path

    Next

    End sub



    '====================================================================

    Sub GeraLog(strCaminho)


    Set objArq = ObjFSO.GetFolder(strCaminho)
    Set MyFiles = objArq.files 

    For Each MyFiles in objArq.Files
       strFileOrig = Myfiles.path
       strFileDest = strDest & MID(MyFiles.path,Len(strPasta),Len(Myfiles.path))

       if (objFSO.FileExists(strFileDest) = True) Then
          Set objFileDest = objFSO.GetFile(strFileDest)
          If DateDiff("d",objFileDest.DateLastModified,myfiles.DateLastModified) > 0 Then

             objFSO.Copyfile strFileOrig,strFileDest,True
             objLogFile.WriteLine "ARQUIVO SUBSTITUIDO : "  & myfiles.name &  " copiado em : " & Now
          End if
       Else
          pastapai = MID(RIGHT(myFiles.ParentFolder,LEN(myFiles.ParentFolder)),Len(strPasta),Len(myFiles.ParentFolder))
          dirDest = strDest
          arrTipos = split(pastapai,"\")
          For x = 0 to UBOUND(arrTipos)
             if objFSO.folderexists(dirDest & arrTipos(x)) = false Then
               objFSO.CreateFolder(dirDest & arrTipos(x))
               dirDest = dirDest & arrTipos(x) & "\"
             Else
               dirDest = dirDest & arrTipos(x) & "\"
             End if
          Next

    '      WSCRIPT.ECHO "NAO EXISTE"
          objFSO.Copyfile strFileOrig,strFileDest,True
          objLogFile.WriteLine "ARQUIVO NOVO : "  & dirDest & myfiles.name &  " copiado em : " & Now
       End if
    Next
    End sub

    '====================================================================

    Sub LimpaDel(strCaminho)


    Set objArq = ObjFSO.GetFolder(strCaminho)
    Set MyFiles = objArq.files 

    For Each MyFiles in objArq.Files
       strFileOrig = Myfiles.path
       strFileDest = strDest & MID(MyFiles.path,Len(strPasta),Len(Myfiles.path))

       if not (objFSO.FileExists(strFileDest) = True) Then
          objLogFile.WriteLine "ARQUIVO DELETADO : "  & dirDest & myfiles.name &  " em : " & Now
       End if
    Next
    End sub


    Da maneira que esta o script... ele copia e cria um log no desktop do micro que irá executar o script.


    Faça os testes e nos retorne.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    • Marcado como Resposta David182 quarta-feira, 9 de dezembro de 2009 11:03
    segunda-feira, 7 de dezembro de 2009 11:41
  • Jesiel eu cheguei a utilizar esse script, so que quando coloco o caminho onde sera salvo ele cria outra pasta!


    Ex:D:\Backups\david

    Ele cria:

    D:\Backups\davids


    David Dellacenta http://daviddellacenta.spaces.live.com || http://www.andersonpatricio.org || http://www.itcentral.com.br || http://lfdias.mvpbrasil.com.br || http://ffazzani.spaces.live.com
    segunda-feira, 7 de dezembro de 2009 12:02