그래서 메모리 사용량, 스위치, 스레드 등을 보여주는 기본 파일이 있고 그 결과를 로그 파일, 즉 텍스트 파일로 인쇄하고 싶습니다. 현재 "./file.sh 1 1"을 입력하여 명령을 실행하는 반면 첫 번째 인수는 명령을 실행할 루프 수를 결정하고 두 번째 인수는 휴면 시간을 결정합니다. 기본적으로 모든 명령을 실행하는 동안 반복됩니다.
추적을 위해 결과를 로그 파일로 내보내고 싶습니다. 결국 제 목표는 이 작업을 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