%3A%20Beim%20Speichern%20des%20Speicherausdrucks%20in%20eine%20Textdatei%20wird%20immer%20ein%20leeres%20Ergebnis%20ausgegeben..png)
In meinem CentOS versuche ich, die CPU-Auslastung und den freien Speicher in eine Textdatei zu drucken. Aber wenn ich in das Terminal tippe, ist alles in Ordnung. Aber wenn es über ausgeführt wird, crontab
ist die Speicherausgabe immer leer.
Manuelle Eingabe im Terminal:
# 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
Gleicher Befehl in Crontab:
*/10 * * * * echo CPU: `top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'`, RAM: `awk '/^Mem/ {print $4}' <(free -m)` >> ~/stats.txt
Dann in der Textdatei:
# cat ~/stats.txt
CPU: 3.4, RAM:
CPU: 4.1, RAM:
CPU: 3.9, RAM:
Warum ist derRAMAusgabe bitte immer leer?
Antwort1
Weil dash
er diese Art von Bashismus nicht versteht:
<(free -m)
Verwenden Sie stattdessen:
free -m | awk '/^Mem/ {print $4}'