%3A%20Salvar%20mem%C3%B3ria%2C%20imprimir%20em%20arquivo%20de%20texto%20sempre%20d%C3%A1%20espa%C3%A7o%20em%20branco.png)
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 crontab
saí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 dash
não entende esse tipo de bashismo:
<(free -m)
Em vez disso, use:
free -m | awk '/^Mem/ {print $4}'