在我的 CentOS 中,我试图将 CPU 使用情况和可用内存输出数字打印到文本文件中。但是当我在终端中输入时,一切都很好。但当它通过 MEMORY 输出执行时crontab
始终为空。
在终端手动输入:
# 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}'