私は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}'