Python用时间戳记计算Internet停机时间



我正在尝试找到一个月内互联网连接的整体停机时间的最佳方法。我的ISP有一个SLA,他们没有达到它,我希望能够将它们交给报告。我有一个运行的探针,该探针在无法连接时写入日志文件,何时可以再次连接。因此,数据看起来像是这样的:

UP - T0
DOWN - T1
UP - T3
so on

我试图在不编写太多代码的情况下找出一种方法,以便通过计算从下降状态回到UP状态所花费的时间来掌握此数据并弄清整个停机时间。如果没有一种简单的方法可以做到这一点,我认为我可以写点什么。有人知道执行此功能的模块吗?

假设您有时间戳,而不是日期,可以做:

sed -n '/DOWN/,$p' test.txt 
| awk -F"-" '{print $2}' 
| paste - -  
| awk -F"t" '{print $2-$1}'
| awk '{ sum+=$1} END {print sum}'
  • sed -n '/DOWN/,$p' test.txt将在下线和下一行
  • 上拉每条线
  • awk -F"-" '{print $2}' | paste - -将在一行中打印2个数字
  • | awk -F"t" '{print $2-$1}'进行减法
  • awk '{ sum+=$1} END {print sum}'总和所有数字

使用test.txt

UP - 123
DOWN - 124
UP - 127
DOWN - 130
UP - 140

我得到了列表:

3
10

然后您只需要添加数字

awk '{ sum+=$1} END {print sum}'按预期返回13个。

如果您没有时间戳,则可以从

的日期字符串中获得一个

date -j -f "%a %b %d %T %Z %Y" "$DATE" "+%s"

最新更新