所以我有一個基本文件,顯示記憶體使用情況、開關、線程等,我希望將這些結果列印到日誌文件、文字檔案中。目前,我透過輸入“./file.sh 1 1”啟動命令,而第一個參數確定它將運行該命令的循環次數,第二個參數確定它將休眠多長時間。它基本上是一個 while 循環運行所有這些命令。
我想將結果匯出到日誌檔案中進行跟踪,最後我的目標是讓它運行 24 小時並記錄所有結果。
我基本上希望所有這些都飛入日誌文件,如果我添加 > log.txt 或 >> log.txt 它會按照我的意願將其列印到日誌文件中。但它沒有顯示在終端中。
echo "Threads:"
grep -s '^Threads' /proc/[0-9]*/status | awk '{ sum += $2; } END { print sum; }' > log.txt
echo""
echo "Free memory:"
grep MemFree /proc/meminfo > log.txt
echo ""
echo "Firefox usage"
pidstat -C firefox -w -u > log.txt
echo ""
答案1
如果您想同時記錄到文件並輸出到標準輸出,您可能需要嘗試tee
:
echo "Threads:"
grep -s '^Threads' /proc/[0-9]*/status | awk '{ sum += $2; } END { print sum; }' | tee -a log.txt
echo""
echo "Free memory:"
grep MemFree /proc/meminfo | tee -a log.txt
echo ""
echo "Firefox usage"
pidstat -C firefox -w -u | tee -a log.txt
echo ""
如果您希望將所有內容傳送到日誌文件,我們可以使用:
(
echo "Threads:"
grep -s '^Threads' /proc/[0-9]*/status | awk '{ sum += $2; } END { print sum; }'
echo""
echo "Free memory:"
grep MemFree /proc/meminfo
echo ""
echo "Firefox usage"
pidstat -C firefox -w -u
echo ""
) | tee -a log.txt