Вам нужно изменить >
на >>
. Использование только одного >
приведет к усечению файла перед записью в него, использование двух добавит. Вы также можете сделать что-нибудь, чтобы сам файл не стал слишком большим.
-121 ---118630 -
Вы можете использовать цикл while:
while :
do
free -m | awk 'NR==2{printf " | Memory Usage: %s/%sMB (%.2f%%)|\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf " | Disk Usage: %d/%dGB (%s) |\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf " | CPU Load: %.2f |\n",$(NF-2)}'
sleep 1
done
:— это встроенная -команда, которая всегда возвращает true
если вы предпочитаете что-то более читабельное, вы можете использовать true:
while true
do
free -m | awk 'NR==2{printf " | Memory Usage: %s/%sMB (%.2f%%)|\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf " | Disk Usage: %d/%dGB (%s) |\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf " | CPU Load: %.2f |\n",$(NF-2)}'
sleep 1
done
вы можете получить больше информации о разнице между " :" и "true" здесь:
Какова цель:(двоеточия )встроенной команды GNU Bash?
Если вам нужно четкое отображение информации, вы можете добавить функцию очистки в начале цикла, например:
while :
do
clear
free -m | awk 'NR==2{printf " | Memory Usage: %s/%sMB (%.2f%%)|\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf " | Disk Usage: %d/%dGB (%s) |\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf " | CPU Load: %.2f |\n",$(NF-2)}'
sleep 1
done
Вы можете попробовать добавить параметр ядра
vt.global_cursor_default=0
в строку параметров GRUB (, см., например. Руководство администратора ядра или эту статью ).