【问题标题】:logging start and end time of a script that loops记录循环的脚本的开始和结束时间
【发布时间】:2018-08-29 07:44:52
【问题描述】:

我有一个通过 bash 脚本循环的 .py 文件 像这样:

 while True:
        text = "app cli -- some parameters -- email, password and body for a message"
        os.system(text)

我从 bash 运行它 我只能通过在 bash 中输入 kill -9 pid 来阻止这种不断发送消息

我的问题是,当我将它作为脚本启动并从 bash 结束时,我如何记录开始和结束时间(结束时间意味着我终止进程时)以及消息/循环的数量(频率)。 我必须调整我的 python 脚本还是必须在运行时调整我的命令?以及如何?

我也确信有一种更优雅的方式来做我想做的事情,我只是一个初学者..

我唯一能做的就是计算一次发送一条消息需要多长时间..这并没有真正的帮助..

【问题讨论】:

  • “我也确信有一种更优雅的方式来做我想做的事情”我不清楚你想要做什么,你能澄清一下的目的吗?脚本?
  • 嘿,是的,基本上是想通过不断从 pi 发送消息来轰炸我们的应用服务器,以检查它的容量以及它如何处理压力,这就是为什么我需要记录很多东西并且频率很重要
  • 不知道this有没有用?我对Linux不太熟悉

标签: python linux bash shell logging


【解决方案1】:

要记录时间,您可以使用time 命令 (Unix)。

例如,如果我运行这个程序:

iterations = 0
while True:
        // do something
        iterations+=1
        print iterations 

使用以下命令调用脚本:

time python myscript.py

之后,假设您使用Cntr+C 或任何其他强制停止来停止执行。 您现在可以通过检查输出来检查运行脚本的时间量以及迭代次数,在我的例子中是:

7773
7774
7775
Traceback (most recent call last):
  File "script.py", line 5, in <module>
    print counter
KeyboardInterrupt


real    0m2.447s
user    0m0.109s
sys     0m0.234s

注意你可以在time命令的文档中找到你从中得到的三个时间值的含义

【讨论】:

  • 感谢您,我可以将 bash 中出现的服务器响应和 time 命令输出重定向到日志文件,到目前为止我已经使用了这个 { time ./stresstest02.py ; 2> time.txt 但只记录时间。有没有办法可以将两者结合起来?输出
  • 例如(time ls) &gt; log.log 2&gt;&amp;1 确实将time 输出和ls 输出写入同一个文件中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多