Скрипт оболочки (в Crontab): сохранение памяти, печать в текстовый файл всегда дает пустой результат

Скрипт оболочки (в Crontab): сохранение памяти, печать в текстовый файл всегда дает пустой результат

В моем CentOS я пытаюсь вывести выходные данные CPU USAGE и FREE MEMORY в текстовый файл. Но когда я печатаю в терминале, все нормально. Но когда это выполняется через crontabвывод MEMORY, он всегда пустой.

Вводим вручную в терминале:

# 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

Та же команда в Crontab:

*/10 * * * * 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.4, RAM: 
CPU: 4.1, RAM: 
CPU: 3.9, RAM: 

ПочемуБАРАНвывод всегда пустой пожалуйста?

решение1

Потому что dashне понимает такого рода башизм:

<(free -m)

Вместо этого используйте:

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

Связанный контент