Shell Script (en Crontab): guardar la memoria impresa en un archivo de texto siempre aparece en blanco

Shell Script (en Crontab): guardar la memoria impresa en un archivo de texto siempre aparece en blanco

En mi CentOS, estoy intentando imprimir los números de salida de USO de CPU y MEMORIA LIBRE en un archivo de texto. Pero cuando escribo en la terminal, todo está bien. Pero cuando se ejecuta a través de la crontabsalida MEMORIA siempre está en blanco.

Escribiendo manualmente en la terminal:

# echo CPU: `top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'`, RAM: `awk '/^Mem/ {print $4}' <(free -m)` >> ~/stats.txt
# cat ~/stats.txt
CPU: 3.8, RAM: 1307

Mismo comando en Crontab:

*/10 * * * * echo CPU: `top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'`, RAM: `awk '/^Mem/ {print $4}' <(free -m)` >> ~/stats.txt

Luego dentro del archivo de texto:

# cat ~/stats.txt
CPU: 3.4, RAM: 
CPU: 4.1, RAM: 
CPU: 3.9, RAM: 

Porque es elRAM¿La salida siempre está en blanco, por favor?

Respuesta1

Porque dashno entiende este tipo de bashismo:

<(free -m)

En su lugar, utilice:

free -m | awk '/^Mem/ {print $4}'

información relacionada