none
Auditar incremento de tamaño de un archivo RRS feed

  • Pregunta

  • Hola, tengo un aplicativo desarrollado el cual genera un archivo de registro o LOG que siempre está en crecimiento, el problema es cuando este archivo deja de crecer,  ¿como puedo estar informado cuando este archivo (*.txt) deje de crecer?
    viernes, 8 de febrero de 2013 11:10

Respuestas

  • Hola Armando,

    No conozco ningún modo de auditar esto de manera proactiva como comentas.

    Puedes, sin embargo, utilizar un script como el que posteo a continuacíón para monitorizar el timestamp del fichero LOG en cuestión, si éste no es modificado en 24h (o lo que tu consideres, ya que si no hay modificación del contenido, no se modifica el valor lastmodified) te enviará un email a tu cuenta.

    Deberías reconfigurar las variables de Path y Servidor de Correo en el script, guardarlo como VBS y vincularlo a una tarea programada que corra cada cierto tiempo y vaya chequeando el archivo.

    'on error resume next
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    set objMessage = CreateObject("cdo.message")
    set objConfig = CreateObject("cdo.configuration")
    
    'Modificar esta variable con el valor de tu entorno
    strFile="Ruta absoluta del archivo de LOG"
    
    set Flds = objConfig.Fields
    'Modificar con los settings de tu mailserver
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp server"
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
    	.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "smtp user if required"
    	.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "smtp pwd if required"
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = false
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Update
    End With
    set objMessage.Configuration = objConfig
    set objFile = objFSO.GetFile(strFile)
    if file.datelastmodified > date() -1 then
    	With objMessage
    		.FROM = "email source"
    		.To = "target email"
    		.Subject= "Log Last modified warning" & date()
    		.TextBody = "Mail Body"
    		.Fields.Update
    		.Send
    	End With
    end if
    next
    set objMessage = NOTHING
    set objConfig = NOTHING

    A lo mejor existe un modo más sencillo de hacerlo y te estoy complicando la vida, a ver si a alguien más se le ocurre...

    Saludos

    Julio Rosua

    • Propuesto como respuesta Uriel Almendra martes, 19 de marzo de 2013 17:48
    • Marcado como respuesta Uriel Almendra viernes, 19 de abril de 2013 14:50
    miércoles, 13 de febrero de 2013 8:20

Todas las respuestas

  • Hola Armando,

    No conozco ningún modo de auditar esto de manera proactiva como comentas.

    Puedes, sin embargo, utilizar un script como el que posteo a continuacíón para monitorizar el timestamp del fichero LOG en cuestión, si éste no es modificado en 24h (o lo que tu consideres, ya que si no hay modificación del contenido, no se modifica el valor lastmodified) te enviará un email a tu cuenta.

    Deberías reconfigurar las variables de Path y Servidor de Correo en el script, guardarlo como VBS y vincularlo a una tarea programada que corra cada cierto tiempo y vaya chequeando el archivo.

    'on error resume next
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    set objMessage = CreateObject("cdo.message")
    set objConfig = CreateObject("cdo.configuration")
    
    'Modificar esta variable con el valor de tu entorno
    strFile="Ruta absoluta del archivo de LOG"
    
    set Flds = objConfig.Fields
    'Modificar con los settings de tu mailserver
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp server"
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
    	.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "smtp user if required"
    	.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "smtp pwd if required"
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = false
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Update
    End With
    set objMessage.Configuration = objConfig
    set objFile = objFSO.GetFile(strFile)
    if file.datelastmodified > date() -1 then
    	With objMessage
    		.FROM = "email source"
    		.To = "target email"
    		.Subject= "Log Last modified warning" & date()
    		.TextBody = "Mail Body"
    		.Fields.Update
    		.Send
    	End With
    end if
    next
    set objMessage = NOTHING
    set objConfig = NOTHING

    A lo mejor existe un modo más sencillo de hacerlo y te estoy complicando la vida, a ver si a alguien más se le ocurre...

    Saludos

    Julio Rosua

    • Propuesto como respuesta Uriel Almendra martes, 19 de marzo de 2013 17:48
    • Marcado como respuesta Uriel Almendra viernes, 19 de abril de 2013 14:50
    miércoles, 13 de febrero de 2013 8:20
  • Hola Armando,

    No conozco ningún modo de auditar esto de manera proactiva como comentas.

    Puedes, sin embargo, utilizar un script como el que posteo a continuacíón para monitorizar el timestamp del fichero LOG en cuestión, si éste no es modificado en 24h (o lo que tu consideres, ya que si no hay modificación del contenido, no se modifica el valor lastmodified) te enviará un email a tu cuenta.

    Deberías reconfigurar las variables de Path y Servidor de Correo en el script, guardarlo como VBS y vincularlo a una tarea programada que corra cada cierto tiempo y vaya chequeando el archivo.

    'on error resume next
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    set objMessage = CreateObject("cdo.message")
    set objConfig = CreateObject("cdo.configuration")
    
    'Modificar esta variable con el valor de tu entorno
    strFile="Ruta absoluta del archivo de LOG"
    
    set Flds = objConfig.Fields
    'Modificar con los settings de tu mailserver
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp server"
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
    	.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "smtp user if required"
    	.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "smtp pwd if required"
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = false
    	.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Update
    End With
    set objMessage.Configuration = objConfig
    set objFile = objFSO.GetFile(strFile)
    if file.datelastmodified > date() -1 then
    	With objMessage
    		.FROM = "email source"
    		.To = "target email"
    		.Subject= "Log Last modified warning" & date()
    		.TextBody = "Mail Body"
    		.Fields.Update
    		.Send
    	End With
    end if
    next
    set objMessage = NOTHING
    set objConfig = NOTHING

    A lo mejor existe un modo más sencillo de hacerlo y te estoy complicando la vida, a ver si a alguien más se le ocurre...

    Saludos

    Julio Rosua

    Estimado, muchas gracias revisaré lo enviado y le comentaré.

    jueves, 14 de febrero de 2013 7:42