Script Bash: ¿Cómo redirijo la salida de un script Bash a un archivo?

Script Bash: ¿Cómo redirijo la salida de un script Bash a un archivo?

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

información relacionada