
在我的 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}'