Shell Script (no Crontab): Salvar memória, imprimir em arquivo de texto sempre dá espaço em branco

Shell Script (no Crontab): Salvar memória, imprimir em arquivo de texto sempre dá espaço em branco

No meu CentOS, estou tentando imprimir os números de saída CPU USAGE e FREE MEMORY em um arquivo de texto. Mas quando digito no terminal, está tudo bem. Mas quando é executado através da crontabsaída MEMORY fica sempre em branco.

Digitando manualmente no 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

Mesmo comando no Crontab:

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

Então dentro do arquivo de texto:

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

Porque é oBATERsaída sempre em branco, por favor?

Responder1

Porque dashnão entende esse tipo de bashismo:

<(free -m)

Em vez disso, use:

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

informação relacionada