答案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
我喜歡奧利的修改後的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
),以便更清晰地進行即時查看。這可能是也可能不是您對日誌檔案內容的期望。