Итак, у меня есть базовый файл, который показывает использование памяти, переключатели, потоки и т. д., и я хочу, чтобы эти результаты были выведены в файл журнала, текстовый файл. В данный момент я запускаю свою команду, набрав "./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
Если вы хотите и регистрировать в файле, и выводить на 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