我想每60秒运行一次命令,并将输出保存到日志文件中。 我知道我可以通过
打印到控制台watch -n 60 <mycommand>
但是如果我想将它保存到文件以及打印到控制台呢?
答案 0 :(得分:23)
Watch旨在在控制台窗口中运行。由于存在大量不可打印的格式化字符,因此将其输出打印到文件是不方便的。
如果确切的60秒不是问题,你可以不用手表试试这个:
while <some condition>
do
<mycommand> 2>&1 | tee -a /path/to/logfile
sleep 60
done
这会将输出保存到日志文件中,并在控制台上显示。
答案 1 :(得分:5)
试一试:
while true
do
watch -n 60 <command> 2>&1 | tee -a logfile
done
我使用tee
,以便您可以在终端上查看输出并将其捕获到日志中。