Tengo un archivo básico que muestra el uso de memoria, conmutadores, subprocesos, etc. y quiero que esos resultados se impriman en un archivo de registro, un archivo de texto. En este momento lanzo mi comando escribiendo "./file.sh 1 1", mientras que el primer argumento determina cuántos bucles ejecutará el comando y el segundo argumento determina cuánto tiempo permanecerá inactivo. Básicamente es un bucle temporal que ejecuta todos esos comandos.
Quiero exportar los resultados a un archivo de registro para realizar un seguimiento; al final, mi objetivo es que esto se ejecute durante un período de 24 horas y registrar todos los resultados.
Básicamente quiero que todo esto vuele en un archivo de registro, si agrego > log.txt o >> log.txt lo imprimirá en el archivo de registro tal como quiero. Pero no aparece en la terminal.
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 ""
Respuesta1
Si desea iniciar sesión en el archivo y generar salida estándar, puede intentar 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 ""
Si desea que todo se envíe a su archivo de registro, podríamos usar:
(
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