メモリ使用量、スイッチ、スレッドなどを表示する基本ファイルがあり、その結果をログ ファイル、つまりテキスト ファイルに出力したいと考えています。現時点では、「./file.sh 1 1」と入力してコマンドを起動していますが、最初の引数はコマンドを実行するループの数を決定し、2 番目の引数はコマンドがスリープする時間を決定します。基本的には、これらすべてのコマンドをループで実行する 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
ファイルにログを記録し、stdout に出力したい場合は、以下を試してみてください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