如果符合条件,发送电子邮件,然后睡一个小时
如果我在网络设备上的策略映射上看到数字增加,我有一个脚本向我发送电子邮件。如果符合条件,发送电子邮件,然后睡一个小时
这对我很好。但是现在我需要它在发现超时(没问题,可以每分钟运行一次cron作业)时发邮件给我 - 但是当它看到超时时,我需要脚本在一小时后不运行我不会被邮件淹没。因此,我希望脚本每隔一分钟左右检查一次网络设备,但每当它看到超出时,就停止运行。
想不到我的(初学者)头顶怎么去做这件事。
我的代码通过pexpect从网络设备中提取统计信息并将其转储到1.txt中。然后,我通过正则表达式去掉我需要的东西,然后与之前的运行进行比较。这不是优雅,我知道,但我是一个初学者...
我已经删除了一堆的代码,但这里的关键是它。 2.txt和3.txt包含数字 - 如果新数字更高,则会通过电子邮件发送给我。
getexceeds = open("1.txt", "r").readlines()[12]
output = re.findall(r"\d+", getexceeds)[1]
with open("2.txt", "w") as outp:
outp.write(output)
newnumber = open("2.txt", "r").readlines()[0]
oldnumber = open("3.txt", "r").readlines()[0]
if oldnumber < newnumber:
send_email()
else:
print "same"
src_file = "2.txt"
dst_file = "3.txt"
shutil.copy(src_file, dst_file)
感谢这里的任何帮助,我还是让我围绕脚本头和欣赏任何帮助!
可能的解决方案是使用时间库。它允许你做很多与时间不同的东西,如:
time.sleep(secs)
在这方面的文章,可以发现here(当然,用几句话),但它在本质上只是暂停程序的给定数量秒。考虑到有3600秒,一小时只是做:
time.sleep(3600)
注:此暂停60分钟的程序,这意味着你将无法在这段时间运行任何代码。
谢谢你。我应该用我的头。所以我把脚本放在一个简单的while循环中,然后在发送电子邮件语句之后添加time.sleep语句......这很完美。谢了哥们。 – 2014-09-23 09:04:40
@captainyossarian没问题!这个网站究竟是干什么的=) – 2014-09-23 12:19:25
是否有可能以秒为单位获取时间(时间戳格式),然后简单计算出一小时内有3600秒,并且自上次发送电子邮件以来的时间结束后,再次发送? – 2014-09-22 15:17:56