因此,我有一个显示内存使用情况、开关、线程等的基本文件,我希望将这些结果打印到日志文件(文本文件)中。目前,我通过键入“./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