【问题标题】:Extracting output of Linux "time" command into a file将 Linux“时间”命令的输出提取到文件中
【发布时间】:2020-04-13 14:28:14
【问题描述】:

我想在循环中多次运行以下 Linux 命令,并想使用 gnuplot 绘制 实时 时间的变化。

time scp -i k30.pem ubuntu@ec2-XX-YY-ZZ-WW.compute-1.amazonaws.com:/home/ubuntu/pics/*  /home/pi/

但我面临的问题是如何将上述命令的输出提取到电子表格列中,以便稍后使用gnuplot 绘制它。 我在 Raspberry Pi 3B+ 型号中使用最新版本的 Raspbian。

请帮忙。

【问题讨论】:

  • 为了得到time的输出,你需要这样的东西(一个使用ls的例子):(time ls) 2> tmp。文件tmp 将具有所需的输出。
  • 试试这个result=$(/usr/bin/time sleep 3 2>&1) 然后echo $result

标签: linux shell time raspberry-pi gnuplot


【解决方案1】:

GNU time 具有 -o FILE 参数,您可以使用该参数将时间输出到文件中。您可以处理文件,从文件中提取时间并将其放在 CSV 或循环中的某个位置。

它还具有-f format 选项,可让您自定义time 的输出格式。

所以,在你的情况下,它可能是这样的:

/usr/bin/time -o mytime.log -f "%e" scp -i k30.pem ubuntu@ec2-XX-YY-ZZ-WW.compute-1.amazonaws.com:/home/ubuntu/pics/* /home/pi/

在此命令中,"%e" 格式使 GNU time 仅以秒为单位实时打印。

【讨论】:

  • 这个解决方案对我来说有两个问题:1. 它覆盖了 mytime.log。 2. time 命令不在 Raspbian 中的 /usr/bin/time 位置。我使用 whereis 时间检查它给出的时间: /usr/include/time.h /usr/share/man/man7/time.7.gz /usr/share/man/man2/time.2.gz 然后我尝试替换 / usr/bin/time 到 /usr/include/time.h 但它未能拒绝权限。然后我尝试了 sudo 但问题是一样的。
  • @PankajThakur 我不知道 Raspbian。我假设它是基于 Debian 的,所以它会有 GNU 工具。如果它没有 time 命令,您可能必须使用它支持的任何打包系统来安装它。
  • 时间命令在 Rasbian 中可用。我的第一个问题也通过在 ubuntu 18.04 上用 -ao 替换 -o 来解决。
猜你喜欢
  • 2011-06-28
  • 2011-09-16
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 2013-10-08
  • 2014-12-08
  • 2021-02-01
  • 2012-11-01
相关资源
最近更新 更多