【问题标题】:How to save output of "watch" to file [closed]如何将“watch”的输出保存到文件[关闭]
【发布时间】:2014-03-17 23:33:03
【问题描述】:

我想每 60 秒运行一次命令,并将输出保存到日志文件。 我知道我可以通过

打印到控制台
watch -n 60 <mycommand>

但是如果我想将其保存到文件并打印到控制台怎么办?

【问题讨论】:

标签: linux bash ubuntu


【解决方案1】:

试试看:

while true
do
    watch -n 60 <command> 2>&1 | tee -a logfile
done

我使用tee,以便您可以在终端上看到输出并在日志中捕获它。

【讨论】:

  • 这不会产生可用的输出,因为结果文件是用终端仿真器控制代码归档的。
  • 有没有办法制作可用的输出?没有终端的东西?请
【解决方案2】:

Watch 设计为在控制台窗口中运行。由于大量不可打印的格式字符,将其输出打印到文件很不方便。

如果确切的 60 秒不是问题,您可以不带手表试试这个:

 while <some condition>
 do
     <mycommand> 2>&1 | tee -a /path/to/logfile
     sleep 60
 done

这会将输出保存到日志文件并在控制台上显示。

【讨论】:

  • 您可以将命令作为后台进程运行,使其每 60 秒启动一次,而不是在上次完成后 60 秒启动。
  • 是的,你是对的。您也可以像这样将它添加到您的 crontab 中: "* * * * * /path/to/mycommand 2>&1 | /path/to/tee -a /path/to/logfile" 虽然这不起作用,如果您希望每 60 秒运行一次以上。
  • 为什么文件的输出对我来说仍然很奇怪?它有这样的东西[24;80H[1;74H20[24;80H[1;75H1[24;80H[1;75H2[24;80H
猜你喜欢
  • 1970-01-01
  • 2022-07-15
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多