R
rbt
The below script produces a '[Errno 9] Bad File Descriptor' when
executed. If I remove the try: except: statements, the script stops when
the error occurs.
The purpose of the script is to monitor the size of the three main logs
on a Windows 2003 server and send and email should any of the logs get
shorter. It works fine... just don't know *why* it produces the '[Errno
9] Bad File Descriptor' error.
I'm running Python 2.4.1 on Windows 2003 SP1 Server with no funky win32
extensions
logs = ['AppEvent.Evt', 'SecEvent.Evt', 'SysEvent.Evt']
app_size = 0
sec_size = 0
sys_size = 0
def send_email(LogName, old_size, new_size):
f = "Somebody<[email protected]>"
t = "(e-mail address removed)"
msg = MIMEText("""old_size = %d, new_size = %d""" %(old_size,
new_size))
msg["Subject"] = "%s Log Just Got Shorter" %LogName
msg["Message-id"] = email.Utils.make_msgid()
msg["From"] = f
msg["To"] = t
h = "smtp.vt.edu"
s = smtplib.SMTP(h)
s.sendmail(f, t, msg.as_string())
s.quit()
while 1:
for log in logs:
try:
a = os.stat('C:\WINDOWS\System32\config\%s' %log)
cur_size = a[6]
print log
print "cur_size", cur_size
if log == 'AppEvent.Evt':
print "old_size", app_size, "\n"
if cur_size >= app_size:
app_size = cur_size
time.sleep(6)
continue
else:
send_email(log, app_size, cur_size)
time.sleep(6)
continue
elif log == 'SecEvent.Evt':
print "old_size", sec_size, "\n"
if cur_size >= sec_size:
sec_size = cur_size
time.sleep(6)
continue
else:
send_email(log, sec_size, cur_size)
time.sleep(6)
continue
else:
print "old_size", sys_size, "\n"
if cur_size >= sys_size:
sys_size = cur_size
time.sleep(6)
continue
else:
send_email(log, sys_size, cur_size)
time.sleep(6)
continue
except Exception, e:
fp7 = file('log_mon_exception.txt', 'a')
print >> fp7, e
fp7.close()
executed. If I remove the try: except: statements, the script stops when
the error occurs.
The purpose of the script is to monitor the size of the three main logs
on a Windows 2003 server and send and email should any of the logs get
shorter. It works fine... just don't know *why* it produces the '[Errno
9] Bad File Descriptor' error.
I'm running Python 2.4.1 on Windows 2003 SP1 Server with no funky win32
extensions
logs = ['AppEvent.Evt', 'SecEvent.Evt', 'SysEvent.Evt']
app_size = 0
sec_size = 0
sys_size = 0
def send_email(LogName, old_size, new_size):
f = "Somebody<[email protected]>"
t = "(e-mail address removed)"
msg = MIMEText("""old_size = %d, new_size = %d""" %(old_size,
new_size))
msg["Subject"] = "%s Log Just Got Shorter" %LogName
msg["Message-id"] = email.Utils.make_msgid()
msg["From"] = f
msg["To"] = t
h = "smtp.vt.edu"
s = smtplib.SMTP(h)
s.sendmail(f, t, msg.as_string())
s.quit()
while 1:
for log in logs:
try:
a = os.stat('C:\WINDOWS\System32\config\%s' %log)
cur_size = a[6]
print log
print "cur_size", cur_size
if log == 'AppEvent.Evt':
print "old_size", app_size, "\n"
if cur_size >= app_size:
app_size = cur_size
time.sleep(6)
continue
else:
send_email(log, app_size, cur_size)
time.sleep(6)
continue
elif log == 'SecEvent.Evt':
print "old_size", sec_size, "\n"
if cur_size >= sec_size:
sec_size = cur_size
time.sleep(6)
continue
else:
send_email(log, sec_size, cur_size)
time.sleep(6)
continue
else:
print "old_size", sys_size, "\n"
if cur_size >= sys_size:
sys_size = cur_size
time.sleep(6)
continue
else:
send_email(log, sys_size, cur_size)
time.sleep(6)
continue
except Exception, e:
fp7 = file('log_mon_exception.txt', 'a')
print >> fp7, e
fp7.close()