none
Backup RRS feed

  • Pergunta

  • Boa tarde Pessoal!

    Eu estou tentando criar um script de aviso mais não acho nada sobre.

    Nós aqui na empresa fazemos backup em fita dat usando o Ntbackup e nossa backup tem 5 fitas, e todo dia temos que ficar trocando as fitas ao longo do dia, as vezes esquecemos de trocar e o backup acaba demorando bem mais. Eu já procurei na net e não encontrei nada, pois queria um script que me informasse por e-mail ou alerta quando o unidade dat eject a fita para que eu possa trocar.

     

    Desde de já agradeço a Todos.!

     

    segunda-feira, 2 de julho de 2007 16:43

Respostas

  •  

    O.0 caraca....

     

    "Vamo party pra inginorança intaum " .......

     

    Substitui essa parte aki do script .....

     

    Code Snippet

    on error resume next


    for each TapeDAT in colTapes
        myShell.Run "%windir%\system32\cmd.exe"
       wscript.sleep 2000
        myShell.SendKeys "mt unload>>c:\datlogfile.txt"
        myShell.SendKeys "{ENTER}"
        myShell.SendKeys "exit"
        myShell.SendKeys "{ENTER}"
       if fs.FileExists(arquivo) then
        Set objTextFile = FSO.OpenTextFile(arquivo)
        objLido = objTextFile.ReadAll
        if Instr(objLido, "No media in drive") then
         strMsg= "Está sem fita parceiro"
         Envia_Email "DATapeMon","
    fulano@dom.com","Monitora backup",strMsg
        end if
      end if


    next

     

     o.0  fala sério... qq isso....

    terça-feira, 24 de julho de 2007 21:35
    Moderador
  •  kkkkkkkkkkkkkkkkkkkkkkkkkkk!!

    Putz.. Filipe.!! Caramba .. c é mó engraçado heim..!

    Então voltando ao assunto.. Ele criou o arquivo .txt e dentro do arquivo estava o seguinte resultado:

     

    C:\Documents and Settings\silvaadm\Desktop>mt.exe unload 1>>c:\datlogfile.txt

     

    rsrsrsr... Mas eu entendi o que estava acontecendo neste caso e corrigi para:

     

    for each TapeDAT in colTapes
        myShell.Run "%windir%\system32\cmd.exe"
       wscript.sleep 2000
        myShell.SendKeys "cd\"
        myShell.SendKeys "{ENTER}"
        myShell.SendKeys "mt unload>>c:\datlogfile.txt"
        myShell.SendKeys "{ENTER}"
        myShell.SendKeys "exit"
        myShell.SendKeys "{ENTER}"

     

    Ai funcionou..!!

     

    Filipe muito obrigado mesmo brother.!!!!
      Valeu mesmo pelo esforço!!!
     E não poderia deixar de agradecer ao Romeu tambem que me ajudou muito no começo.!

     

    VALEU GALERA..!!

     

     

     

    terça-feira, 24 de julho de 2007 22:01

Todas as Respostas

  • Procurei por algo no ntbakup e no taskman que tivesse alguma opção de executar uma ação quando o bakup teminar, mas não encotrei. Pode até existir mas eu não achei.Se eu estivesse na sua situação usaria um script qua rodar junto com o inicio até o fim do backup. executando a cada 5 minutos e verificando se o processo ntbackup.exe existe.Resumindo if ntbackup existe (não faça nada, pois o backup ainda está rodando), caso não exista envia email.Para que não ocorra falsos positivos vc deve coloca-lo para executar somente no período + alguns minutos que o bakup está executando.segue script.
    Abraço e boa sorte




    'Monitora processo e envia email
    'romeu malacarne avancini - rmavancini@gmail.com
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcesses = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = 'ntbackup.exe'")
    If colProcesses.Count = 0 Then
        Wscript.Echo "Acabou o backup."
        strMsg= "Processo do nbackup terminou! Isso indica wue o backup encerrou!"
        Envia_Email "NTbackupMon","fulano@dom.com","Monitora backup",strMsg
    End If




    SUB Envia_Email(sDe,sPara,sAssunto,sTexto)

        Set objEmail = CreateObject("CDO.Message")
        objEmail.From = sDe
        objEmail.To = sPara
        objEmail.Subject = sAssunto
        objEmail.Textbody =  sTexto

        'if anexo>"" then objEmail.AddAttachment anexo

        objEmail.Configuration.Fields.Item _
             ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

        objEmail.Configuration.Fields.Item _
             ("http://schemas.microsoft.com/cdo/configuration/SMTPAuthenticate") = 0 '1-para autenticar

        objEmail.Configuration.Fields.Item _
             ("http://schemas.microsoft.com/cdo/configuration/SendUsername") = "username"

        objEmail.Configuration.Fields.Item _
             ("http://schemas.microsoft.com/cdo/configuration/SendPassword") = "mypass"

        objEmail.Configuration.Fields.Item _
             ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp"

        objEmail.Configuration.Fields.Item _
             ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

        objEmail.Configuration.Fields.Update
       
        On error Resume Next

        objEmail.Send
            Select Case err.number
                Case 0 ' Enviado com sucesso
                Case Else 'E-mail inválido]
                    Envia_Email strEmailAdm,strEmailDesenv,"Problema no Script " & strPC,err.description
            end select
        On error goto 0
    END SUB






    sábado, 7 de julho de 2007 14:07
  • Boa tarde pessoal.

    Romeu muito obrigado mesmo!! por tentar me ajudar.

    Mas na verdade eu preciso de um aviso quando o ntbackup ejetar a fita e pedir outra fita para prosseguir com o bkp. Pelo que eu entendi do seu script ele verifica se o processo ntbackup esta rodando, no caso tanto da troca de fita qto do termino do backup o processo continua rodando e o script acaba não avisando sobre a troca e nem sobre o final do backup.
    Será que tem como monitorar ou gerar um evento no eventview e depois usar o alerta para monitorar esse evento?

    Alguem pode me ajudar neste script?

     

    Mesmo assim !! Valeu seu esforço Romeu.!!

    terça-feira, 10 de julho de 2007 16:08
  • Esquenta não cara...tem que tentar verificar de o ntbackup se comporta desta forma.
    terça-feira, 10 de julho de 2007 20:03
  • tenta fazer testes com esse cara

    MT.exe - command line Windows NT/2000/XP tape utility (GPL)

    MT was written to erase an old (tar) backup tape which Windows-XP backup refused to overwrite... but I got curious along the way, and added support for various tape functions:

    • Erase (Long and short)
    • Drive and tape status (full details of TAPE_GET_DRIVE_PARAMETERS and TAPE_GET_MEDIA_PARAMETERS structures)
    • Format (QIC117 only according to the documentation)
    • Load and unload (eject) a tape
    • Lock and unlock the tape in the drive
    • Repartition the tape (if your drive supports it)
    • Read/dump from tape to a file
    • Seek by absolute address
    • Retension the tape
    • Rewind the tape

    so it is a cut down version of the rsm command, but without the complexity (which doesn't seem to be in the published API anyway...)

    Download the source (under 35Kb, includes licence) executable (under 25Kb) or compressed package (under 25k zip for those who like to conserve bandwidth :-) This software is released under the GNU GPL (General Public Licence)

    v0.15 notes:

    • fix for wrong block size during read (from Jason Bingham)

    v0.12 notes:

    • Added missing eject command (alias for unload)
    • Most of the commands will fail if the drive is busy. The mediastatus command will wait for the current operation to complete before returning (useful for scripts)

    v0.11 notes:

    • Might be useful for very crude data recovery... use seek or repeatedly read to move past filemarks
    • Most of the options will complete before returning (unnerving if you can't see or hear the drive)...
    • Nice if it understood Kb, Mb and Gb for positioning...but it doesn't
    • read only works on whole tape blocks (for no good reason)
    • Comments, bugs, fixes... or even just found mt useful? e-mail me on peter.weston at my home domain (holistech.co.uk).
    Example Description
    mt longerase erase the tape in the first tape drive (tape0)... (the command mt was written for)
    mt drivestatus show the status of the first drive (tape0)
    mt mediastatus tape1 show the status of the tape in the second drive (tape1)
    mt rewind rewind the tape in the first drive (tape0)
    mt eject tape2 eject the tape in the third drive (tape2)
    mt read mytape.dmp copy contents of the tape in the first drive (tape0) to the file mytape.dmp
    mt read tape1 mytape.dmp 32768 copy 32768 bytes from the tape in the second drive (tape1) to the file mytape.dmp

    Copyright (c) 2001-2002 Peter Weston


    quarta-feira, 11 de julho de 2007 01:14
  • Boa Tarde a Todos.!!

    Putz.>!!! Valeu mesmo Romeu .!! Acho que estou com 50% do problema resolvido graças a você..
      Na verdade eu usei o mt drivestatus. Eu percebi o seguinte: Quando eu rodo o drivestatus se o backup esta rodando ele me retorna a seguinte mensagem:

     

    "The process cannot access the file because it is being used by another process. While opening tape drive"

     

    Mas se por acaso eu rodo o comando quando o ntbackup ejetou a fita e esta pedindo para trocar ele retorna a mensagem com as informações do drive dat.

    Provavelmente se tiver como montar um script para rodar tipo de 5 em 5 minutos com o comando, e quando ele mostrar a mensagem com informações do drive , quer dizer que já ejectou a fita e pode trocar ou que já terminou o backup e então envia um e-mail.

    Tem como..??? Eu sei que estou querendo de mais , mas ja estamos meio caminho andando.!!

    Muito obrigado mesmo Romeu!!!
    Fico no aguardo.

     

     

    quarta-feira, 11 de julho de 2007 15:32
  • estou meio arroxado ... mas vou tentar fazer algo.

    posta a mensagem que ele mostra quando ejeta a fita.

    se alguém também se habilitar .... é só avisar.

    quarta-feira, 11 de julho de 2007 19:27
  • Blz.. Sem problemas.
    A mensagem é essa:

     

    Hardware ECC            : No
    Compression             : Yes
    Data Padding            : No
    Report Setmarks         : Yes
    Default Block Size      : 0x00004000 (16384)
    Maximum Block Size      : 0x00040000 (262144)
    Minimum Block Size      : 0x00000001 (1)
    Maximum Partitions      : 0x00000002 (2)
    EOT Warning Zone Size   : 0x00000000 (0)
    Hardware compression    : Yes
    Report if cleaning required     : Yes
    Hardware error correction (ECC) : No
    Soft eject physically ejects    : Yes
    Must erase from partition start : No
    Long erase                      : No
    Now erase (immediate erase)     : Yes
    Short erase                     : Yes
    Creates fixed partitions        : No
    Fixed length blocks             : Yes
    Initiator defined partitions    : Yes
    Data padding                    : No
    Provides absolute block number  : Yes
    Provides logical block number   : Yes
    Setmark reporting               : Yes
    Creates select data partitions  : No
    Set end of medium warning size  : No
    Set compression only at partition start : No
    Returns maximum capacity of tape        : Yes
    Returns remaining capacity of tape      : Yes
    Variable length block mode              : Yes
    Returns error if write protected        : Yes
    Immediate return on absolute seek       : No
    Absolute seek                           : Yes
    Goto end of data                        : Yes
    Seek by filemark count                  : Yes
    Load and unload                         : Yes
    Immediate return on load and unload     : Yes
    Lock tape in drive                      : Yes
    Immediate return on lock and unlock     : No
    Immediate return on logical block seek  : No
    Logical block seek              : Yes
    Relative seek                   : Yes
    Backwards seek                  : Yes
    Immediate rewind                : Yes
    Seek to n consecutive filemarks : Yes
    Seek to n consecutive setmarks  : No
    Set block size                  : Yes
    Set hardware compression        : Yes
    Set hardware error correction   : No
    Set data padding                : No
    Setmark reporting               : Yes
    Seek over n setmarks            : Yes
    Immediate spacing               : No
    Tape tensioning                 : No
    Immediate tape tensioning       : No
    Write filemarks                 : Yes
    Write long filemarks            : No
    Immediate write filemarks       : Yes
    Write setmarks                  : Yes
    Write short setmarks            : No

     

     

    Grande né..rsrsrsr!
     Muito obrigado Romeu.!!

    quarta-feira, 11 de julho de 2007 19:34
  • tenta executar um mt mediastatus tape1 (exemplo) para ver se não conseguimos diminuir este status.
    sabe por quê?
    A gnete tentaria gravar isso em um arquivo e mandaria o script ler. dependendo do status gravado ele executa uma ação.
    vaelu.
    quarta-feira, 11 de julho de 2007 22:05
  • Poderiamos tentar tbm o comando :

    mt unload , pois se estiver fazendo backup ele retorno o seguinte:

     

    "The process cannot accees the file because it is being used by another process. While openig tape drive"

     

    Mas se executo este comando quando ele já ejetou a fita , entaum ele retorna a seguinte msg.

     

    "No media in drive. While unloading <1112>

     

    E tbm quando executo o mesmo comando quando o backup já terminou, entaum ele ejeta a fita e mostra a seguinte msg:

     

    "Unloading completed Ok "

     

    Podemos usar estes para montar o script que você sugere , assim terei varios caras, ele vai avisar e tbm ao final do backup ele vai ejetar a fita. Dá pra quando retornar o "unloading completed Ok" ele enviar uma msg , tipo o backup acabou.

     

    Estamos quase lá heim!!!!

     

     

    quarta-feira, 11 de julho de 2007 22:23
  • legal agora com estas informações vamos meter a maão na massa!
    quarta-feira, 11 de julho de 2007 22:38
  • Boa Tarde Pessoal!!

    Romeu

    Eu sei que deve estar muito ocupado, mas é que ainda não estou conseguindo montar o script...

    Estou no aguardo;.!!!

    Muito Obrigado..

     

    sexta-feira, 13 de julho de 2007 19:02
  • fala cara...tô meio arroxado aki...vou tentar arrumar tempo neste domingo.
    Enquanto isso veja com o Filipe - RJ - SoftCorp .
    Ele saca de scripts.
    sábado, 14 de julho de 2007 22:09
  •  

    Começando os teste, cara.. não tenho dat aki e não consegui inserir na minha vm.. então vai ter que ser na tentativa e erro...

     

    O que acontece é o seguinte, fiz o script pra verificar o status do dispositivo, porém eu não sei qual a msg de erro que ele vai dar se não tiver fita dentro....

    Então... vamos fazer o seguinte... vou colocar o script, vc testa com a fita dentro, se ele não te der msg alguma, blz... se der tá errado, posta ae que eu vou rever...

    Se ele não te der msg, vc testa com a fita ejetada...

    Ele deve te dar uma msg perguntando se funcionou... se vc receber essa msg testa com a fita dentro, se ele der a mesma msg com a fita dentro, muda a variável em vermelho.....

    Se ele não te der msg com a fita ejetada, vc muda também a variável até ele dar a msg, os valores da variável vão de 1 à 17.

    Testa posta e reza...

     

     

    Code Snippet

    ' = Test script para verificação de FitaDAT..
    ' = Script Original: Romeu malacarne avancini -
    rmavancini@gmail.com
    ' = Adaptação: O Filipe - jfjatoba@gmail.com


    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colTapes = objWMIService.ExecQuery("Select * from Win32_TapeDrive")

    If colTapes.Count = 0 Then
        Wscript.Echo "Não há unidades de fita"
        strMsg= "Não foram encontradas unidades de fita!"
        Envia_Email "DATapeMon","
    fulano@dom.com","Monitora backup",strMsg
        Wscript.quit
    End If

     

    on error resume next
    for each TapeDAT in colTapes
     if TapDAT.Availability <> 3 or err.number<> 0 then
        wscript.echo "funcionou ? a fita está ejetada?"
        strMsg= "Está sem fita parceiro"
        Envia_Email "DATapeMon","
    fulano@dom.com","Monitora backup",strMsg
    end if
    next


    SUB Envia_Email(sDe,sPara,sAssunto,sTexto)

        Set objEmail = CreateObject("CDO.Message")
        objEmail.From = sDe
        objEmail.To = sPara
        objEmail.Subject = sAssunto
        objEmail.Textbody =  sTexto

        'if anexo>"" then objEmail.AddAttachment anexo

        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/SMTPAuthenticate") = 0 '1-para autenticar

        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/SendUsername") = "username"

        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/SendPassword") = "mypass"

        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp"

        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

        objEmail.Configuration.Fields.Update
       
        On error Resume Next

        objEmail.Send
            Select Case err.number
                Case 0 ' Enviado com sucesso
                Case Else 'E-mail inválido]
                    Envia_Email strEmailAdm,strEmailDesenv,"Problema no Script " & strPC,err.description
            end select
        On error goto 0
    END SUB

     

    wscript.quit


     

    segunda-feira, 16 de julho de 2007 21:10
    Moderador
  • E ai Filipe blz?
    Muito Obrigado por tentar me ajudar tbm..!!
    Então o msg que me retorna é a seguinte:

     

    funcionou ? a fita está ejetada?

     

    A fita estando no drive sem ser usada ou até mesmo com o backup em execução.

     

    Não entendi muito bem...!! Ele usa o comando mt.exe ?

    Pq eu estava vendo com Romeu sobre os resultados do comando Mt.exe

    E são os seguintes resultados.

     

    mt unload , pois se estiver fazendo backup ele retorno o seguinte:

     

    "The process cannot accees the file because it is being used by another process. While openig tape drive"

     

    Mas se executo este comando quando ele já ejetou a fita , entaum ele retorna a seguinte msg.

     

    "No media in drive. While unloading <1112>

     

    E tbm quando executo o mesmo comando quando o backup já terminou, entaum ele ejeta a fita e mostra a seguinte msg:

     

    "Unloading completed Ok "

     

    Dá pra fazer algo com esses comandos?

     

    segunda-feira, 16 de julho de 2007 21:48
  •  

    Alberto.. não... não está utilizando o mt...

     

    pq? ... pq eu ainda não consigo pegar o resultado de comandos para dentro de scripts..... o.0 AINDA...

     

    O que esse script tá fazendo é verificar se a unidade está disponível....

     

    Pelo que vc relatou ele funcionou perfeitamente, mas infelizmente para essa aplicação que vc vai usar, ele não serve... vamos para outros caminhos...

     

    Roda esse script no server que tem a unidade de fita, substituindo a letra "E:" pela letra da fita dat... roda e me diz qual a msg que ele vai exibir....

    É só salvar como .vbs e rodar....

    Code Snippet

    Set objWmiService = GetObject("winmgmts:")
    Set objLogicalDisk = objWmiService.Get("Win32_LogicalDisk.DeviceID='E:'")

    on error resume next
    FreeMegaBytes = FormatNumber(objLogicalDisk.FreeSpace / 1024, 0)
    if err.number<>0 then
    wscript.echo "deu erro"
    else
    WScript.Echo FreeMegaBytes
    end if

     

     

    terça-feira, 17 de julho de 2007 19:34
    Moderador
  • Boa tarde Filipe,

    A unidade dat não cria uma letra , ela é identificada dessa maneira ( Tape0 ou Tape1)

    Mesmo assim eu tentei colocar como tape0 ou drive 0 com é exibido no gerenciador , e ele o seguinte erro:

     

     

    caminho do arquivo:

     line: 2

    char: 1

    Error: Not found

     

     

    Code: 80041002

    Source: SWbemServices

     

    E agora?

    terça-feira, 17 de julho de 2007 20:57
  •  

    o.0 hum... Entendi.... eu tava imaginando isso, mas não tinha certeza... bom.. tenta com o script abaixo... vamos ver...

     

    Code Snippet

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colTapes = objWMIService.ExecQuery("Select * from Win32_TapeDrive")

    If colTapes.Count <> 0 Then

    for each Tape in colTapes
    Set objLogicalDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='"&Tape.DeviceID&"'")

    on error resume next
    FreeMegaBytes = FormatNumber(objLogicalDisk.FreeSpace / 1024, 0)
    if err.number<>0 then
    wscript.echo "deu erro"
    else
    WScript.Echo FreeMegaBytes
    end if
    next
    else
    wscript.echo "Não foram encontradas unidades de fita....."
    end if

     

     

    terça-feira, 17 de julho de 2007 21:14
    Moderador
  • Então Filipe eu tentei e retornou o mesmo erro do anterior, mas na linha 8 char 1.
    mas se eu alterar o script para o seguinte :

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colTapes = objWMIService.ExecQuery("Select * from Win32_TapeDrive")

    If colTapes.Count <> 0 Then

    for each Tape in colTapes
    Set objLogicalDisk = objWmiService.Get("Win32_LogicalDisk.DeviceID='"&Drive.DeviceID&"'")

    on error resume next
    FreeMegaBytes = FormatNumber(objLogicalDisk.FreeSpace / 1024, 0)
    if err.number<>0 then
    wscript.echo "deu erro"
    else
    WScript.Echo FreeMegaBytes
    end if
    next
    else
    wscript.echo "Não foram encontradas unidades de fita....."
    end if

     

    Ele muda o erro e aparece o seguinte:

     

    Line : 8

    char : 1

    Error: object required: ' Drive'

    Code: 800A01A8

    Source: Microsoft VBscript Runtime Error

     

    Muda alguma coisa essa informação?

    Valeu!!

    terça-feira, 17 de julho de 2007 21:27
  •  

    o.0 Caraca...

     

    É, agora eu sei que eu não posso acessar a media como se fosse um drive normal...

     

    o.0 vou dar um jeito nisso...

     

    Logo logo eu posto de novo....

     

     

    terça-feira, 17 de julho de 2007 21:36
    Moderador
  •  

    Alberto....

     

    Abaixo... versão 2.0 do script... testa e diz ae se funcionou... =D

     

     

    Code Snippet

    ' = Test script para verificação de FitaDAT..

    ' = Script Original: Romeu malacarne avancini - rmavancini@gmail.com]

    ' = Adaptação: O Filipe - jfjatoba@gmail.com

     

    Option Explicit

    Dim myShell, FSO, arquivo, strComputer, objWMIService, colTapes, TapeDAT, objTextFile, objLido, strMsg, objEmail

    Dim sDe, sPara, sAssunto, sTexto

     

    Set myShell = CreateObject("wscript.shell")

    Set FSO = CreateObject("Scripting.FileSystemObject")

    arquivo = "c:\datlogfile.txt"

    strComputer = "."

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colTapes = objWMIService.ExecQuery("Select * from Win32_TapeDrive")

     

    If colTapes.Count = 0 Then
        myShell.PopUp "Não há unidades de fita"
        Wscript.quit

    End If

     

    on error resume next

    for each TapeDAT in colTapes
        myShell.Run "%windir%\system32\mt.exe unload>>c:\datlogfile.txt"
       if fs.FileExists(arquivo) then
        Set objTextFile = FSO.OpenTextFile(arquivo)
        objLido = objTextFile.ReadAll
        if Instr(objLido, "No media in drive") then
         strMsg= "Está sem fita parceiro"
         Envia_Email "DATapeMon","
    fulano@dom.com","Monitora backup",strMsg
        end if
      end if

    next

     

    SUB Envia_Email(sDe,sPara,sAssunto,sTexto)


        Set objEmail = CreateObject("CDO.Message")
        objEmail.From = sDe
        objEmail.To = sPara
        objEmail.Subject = sAssunto
        objEmail.Textbody =  sTexto


        'if anexo>"" then objEmail.AddAttachment anexo


        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/sendusing") = 2


        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/SMTPAuthenticate") = 0 '1-para autenticar


        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/SendUsername") = "username"


        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/SendPassword") = "mypass"


        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp"


        objEmail.Configuration.Fields.Item _
             ("
    http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25


        objEmail.Configuration.Fields.Update

       
        On error Resume Next
        objEmail.Send
            Select Case err.number
                Case 0 ' Enviado com sucesso
                Case Else 'E-mail inválido]
                    Envia_Email strEmailAdm,strEmailDesenv,"Problema no Script " & strPC,err.description
            end select
        On error goto 0

    END SUB

     

    o.- =D

    segunda-feira, 23 de julho de 2007 16:38
    Moderador
  • Boa tarde Filipe,

    Eu montei o Vbs e tentei a tarde toda fazer ele rodar , mas o problemas esta na hora de executar o comando mt e gravar o resultado em um arquivo.

    Pois quando eu rodo o comando via dos ele consegue criar o arquivo c:\datlogfile.txt" mas quando rodo ele pelo vbs, e tela do Dos aparece e some na mesma hora e não da pra ver o erro..E se eu crio manulamente o arquivo datlogfile.txt o comando funciona e eu recebo o e-mail.

    Fico no Aguardo.

     

    Muito Obrigado .!!!

     

    segunda-feira, 23 de julho de 2007 19:46
  •  

    =D AHA!!!

     

    Blz, Alberto..

     

    O que acontece é o seguinte, quando vc roda via dos, vc tá com o output do comando visível, no caso o output dele vai ser a tela do dos...

     

    Quando ele roda via vbs, ele não deve mesmo aparecer, pq ele só vai iniciar o comando e rodar em segundo plano, e nesse caso o output dele vai ser o arquivo...

     

    É nem tinha visto, como eu não tenho fita aki eu nem reparei esse erro... é só corrigir a linha abaixo que ele vai funcionar normal...

     

    Code Snippet

    Set objTextFile = FSO.OpenTextFile(arquivo)

    mude para

    Set objTextFile = FSO.OpenTextFile(arquivo, 2, True)

     

     

    isso vai fazer com que ele crie...

     

    E outra coisa que eu tinha esquecido de adicionar... coloque isso no fim do arquivo....

     

    Code Snippet

    if FSO.FileExistis(arquivo)=true  then

    objTextFile = FSO.GetFile(arquivo)

    objTextFile.Delete

    end if

     

    Isso vai garantir que o arquivo esteja sempre limpo.. senão ele pode ficar lendo o resultado de comandos anteriores... 

     

    =D que bom que funcionou...

     

    Um abraço, e não esqueça de classificar as respostas!

     

    =D

    segunda-feira, 23 de julho de 2007 21:00
    Moderador
  • Filipe ele criou, mas acho que o erro continua , pois ele criou um txt vazio..naum tem dados..Eu pensei que era por causa da linha que vc me mandou , mas eu retirei a linha que apaga o resultado, mas mesmo assim..ele cria um arquivo vazio  sem resultado.

     

    E agora???rsrsrs

     

     

    segunda-feira, 23 de julho de 2007 22:44
  •  

    huahsuhasuhda

     

    Que sinistro...

    vamos lá...

     

    Coloca a linha de volta como era  ..... FSO.Opentextfile(arquivo)

    E deixa a outra que apaga o arquivo....

     

    O executável do mt, tá localizado no system32 mesmo ?

     

    E faz um teste, roda o mt via cmd abaixo:

     

    mt mediastatus>>c:\logteste02.txt

     

    Ve se ele vai criar o arquivo... o.0 que sinistro isso....

    terça-feira, 24 de julho de 2007 18:26
    Moderador
  • Blz..

    Ja fiz a troca..
      O arquivo esta na system32 sim..

    Eu rodo o comando no Cmd e funciona ..Ele Criou o arquivo sim.

    Mas no script ele não vai.

    Eu acho que o problema esta na execução do comando mt, pois a tela do dos abre e fecha rapidamente e o que da pra ver é ele listar os comandos do mt, como se eu tivesse executando um comando errado ou se eu estivesse executando um help do comando. Teria como criar um arquivo .bat e chamar ele pelo vbs? é apenas um idéia..

    Muito Obrigado.

     

     

     

     

    terça-feira, 24 de julho de 2007 20:48
  •  

    O.0 caraca....

     

    "Vamo party pra inginorança intaum " .......

     

    Substitui essa parte aki do script .....

     

    Code Snippet

    on error resume next


    for each TapeDAT in colTapes
        myShell.Run "%windir%\system32\cmd.exe"
       wscript.sleep 2000
        myShell.SendKeys "mt unload>>c:\datlogfile.txt"
        myShell.SendKeys "{ENTER}"
        myShell.SendKeys "exit"
        myShell.SendKeys "{ENTER}"
       if fs.FileExists(arquivo) then
        Set objTextFile = FSO.OpenTextFile(arquivo)
        objLido = objTextFile.ReadAll
        if Instr(objLido, "No media in drive") then
         strMsg= "Está sem fita parceiro"
         Envia_Email "DATapeMon","
    fulano@dom.com","Monitora backup",strMsg
        end if
      end if


    next

     

     o.0  fala sério... qq isso....

    terça-feira, 24 de julho de 2007 21:35
    Moderador
  •  kkkkkkkkkkkkkkkkkkkkkkkkkkk!!

    Putz.. Filipe.!! Caramba .. c é mó engraçado heim..!

    Então voltando ao assunto.. Ele criou o arquivo .txt e dentro do arquivo estava o seguinte resultado:

     

    C:\Documents and Settings\silvaadm\Desktop>mt.exe unload 1>>c:\datlogfile.txt

     

    rsrsrsr... Mas eu entendi o que estava acontecendo neste caso e corrigi para:

     

    for each TapeDAT in colTapes
        myShell.Run "%windir%\system32\cmd.exe"
       wscript.sleep 2000
        myShell.SendKeys "cd\"
        myShell.SendKeys "{ENTER}"
        myShell.SendKeys "mt unload>>c:\datlogfile.txt"
        myShell.SendKeys "{ENTER}"
        myShell.SendKeys "exit"
        myShell.SendKeys "{ENTER}"

     

    Ai funcionou..!!

     

    Filipe muito obrigado mesmo brother.!!!!
      Valeu mesmo pelo esforço!!!
     E não poderia deixar de agradecer ao Romeu tambem que me ajudou muito no começo.!

     

    VALEU GALERA..!!

     

     

     

    terça-feira, 24 de julho de 2007 22:01
  •  

    HUAHSADH

     

    AHA... já é então...

     

    Abs...

     

    o.0 =D

    quarta-feira, 25 de julho de 2007 16:29
    Moderador
  • Só tem mais um coisa..rsrsr

    O arquivo fica sempre cheio de informação..Aquele codigo que você me passou para colocar no final do script para apagar o resultado não esta apagando. Estou tentando resolver , mas c você puder me dar uma luz..Ficaria muito grato.

     

    Valeu..!!

     

    quarta-feira, 25 de julho de 2007 17:19
  •  

    Artur... falta um SET no código... abaixo...

     

    Code Snippet

    Set objTextFile = FSO.GetFile(arquivo)

     

    Agora vai rolar legal...

     

    o.0

    quarta-feira, 25 de julho de 2007 19:50
    Moderador