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

2024-07-03 04:27:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力找到最好的方法,找到我的互联网连接的整体停机超过一个月。我有一个与我的ISP服务水平协议,他们不符合它,我想能够交给他们的报告。我运行了一个探测器,当它无法连接并且可以再次连接时,它会写入一个日志文件。所以数据看起来是这样假设的:

UP - T0
DOWN - T1
UP - T3
so on

我正在试图找到一种方法,在不编写太多代码的情况下,让一个脚本来运行这些数据,并通过计算从关闭状态返回到打开状态所需的时间来计算整个停机时间。如果没有一个简单的方法来做到这一点,我想我可以写一些这样做。有人知道有一个模块可以完成这个任务吗?你知道吗


Tags: 文件数据方法协议状态报告时间互联网
1条回答
网友
1楼 · 发布于 2024-07-03 04:27:08

假设您有时间戳,而不是日期,那么在bash中您可以执行以下操作:

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将用DOWN和下一行
  • awk -F"-" '{print $2}' | paste - -将在一行中打印这两个数字
  • | 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"

相关问题 更多 >