答案1
我想说您已经在简单的循环中找到了它,但是您可以从这里做很多事情:
编写一个函数来帮你处理这个问题
function uberwatch {
# call: uberwatch <interval> <command>
while true; do
"${@:2}";
sleep $1;
done
}
你可以把它寄存在你家附近的某个地方~/.bashrc
。
将输出记录到文件但继续查看watch
watch "command | tee -a watchlog.log"
您仍然只能看到最新的一次运行,但如果需要,您可以查阅历史记录。
答案2
当为真时;执行日期 >> /vat/tmp/watch.log;睡眠 600;ls -l 文件名 >> /var/tmp/watch.log;完成
我喜欢上面 Artem 提到的 while 循环,但希望将数据存储在文件中,以便我回来时可以对其进行分析,因此添加了文件重定向。在我的例子中,每 10 分钟查看一次文件,并使用 ls -l 查看文件大小
-杰伊
答案3
我喜欢 Oli 的修改的watch
解决方案,但我喜欢实时查看日志而不是稍后再挖掘它的想法。
这是一个想法:
watch 'echo $(date && command 2>&1 | tail -n 1) >> watchlog.log && cat watchlog.log | tail'
解释:
echo
date
避免在和之间出现换行符command
。>>
附加到文件,相同| tee -a
但不会在watch
输出中重复。2>&1
将 stderr 与 stdout 结合起来以确保您看到所有内容,包括错误。| tail -n 1
将输出限制在最后一行(包含输出的行date
),以便实时查看。这可能是也可能不是您对日志文件内容的期望。