%3A%20%E3%83%A1%E3%83%A2%E3%83%AA%E5%8D%B0%E5%88%B7%E3%82%92%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E3%81%A8%E5%B8%B8%E3%81%AB%E7%A9%BA%E7%99%BD%E3%81%AB%E3%81%AA%E3%82%8B.png)
CentOS で、CPU 使用量と空きメモリの出力数値をテキスト ファイルに出力しようとしています。しかし、ターミナルに入力すると、すべて正常です。しかし、経由で実行すると、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}'