我希望每60秒运行一次命令,并将输出保存到日志文件中。我知道可以使用以下方式在控制台上打印:
watch -n 60 <mycommand>
但是如果我想将它保存到文件中并同时打印到控制台怎么办?
我希望每60秒运行一次命令,并将输出保存到日志文件中。我知道可以使用以下方式在控制台上打印:
watch -n 60 <mycommand>
但是如果我想将它保存到文件中并同时打印到控制台怎么办?
Watch被设计为在控制台窗口中运行。将其输出打印到文件中是不方便的,因为存在大量无法打印的格式字符。
如果确切的60秒不是问题,您可以尝试在没有watch的情况下执行此操作:
while <some condition>
do
<mycommand> 2>&1 | tee -a /path/to/logfile
sleep 60
done
这将输出保存到日志文件中并同时显示在控制台上。
[24;80H[1;74H20[24;80H[1;75H1[24;80H[1;75H2[24;80H
。 - Freedo试一下:
while true
do
watch -n 60 <command> 2>&1 | tee -a logfile
done
我使用tee
命令,这样你就可以看到输出并将其捕获到日志中。