Как записывать максимальное значение оперативной памяти из htop каждую секунду (если возможно, то еще чаще) в файл, в первую строку, перетирая предыдущее значение?
Чтобы можно было зайти и посмотреть какое максимальное значение ОЗУ было.
Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?
Модераторы: SLEDopit, Модераторы разделов
-
liaonau
- Сообщения: 390
- ОС: gentoo
Re: Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?
Что подразумевается под максимальным значением оперативной памяти из htop?
htop написанный с использованием ncurses предназначен для интерактивного использования. В зависимости от того, что подразумевается для скриптования стоит использовать free или ps.
htop написанный с использованием ncurses предназначен для интерактивного использования. В зависимости от того, что подразумевается для скриптования стоит использовать free или ps.
Спасибо сказали:
-
p22s
- Сообщения: 158
Re: Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?
liaonau, ну да, я могу ошибаться..
Мне нужно получить значение ОЗУ, которое потребляется на сервере.
Т.е. всего ОЗУ 1024mb, а в 12 часов потреблялось 101мб, в 13 часов 127мб, в 14 часов 95мб,
значит максимальное будет 127.
Т.е. я хочу понимать сколько максимум ОЗУ в течение суток, с интервалом в секунду, использовалось.
Чтобы я понимал, сколько на сервере ОЗУ свободно, пока я не слежу (смотрю в htop) за сервером.
Мне нужно получить значение ОЗУ, которое потребляется на сервере.
Т.е. всего ОЗУ 1024mb, а в 12 часов потреблялось 101мб, в 13 часов 127мб, в 14 часов 95мб,
значит максимальное будет 127.
Т.е. я хочу понимать сколько максимум ОЗУ в течение суток, с интервалом в секунду, использовалось.
Чтобы я понимал, сколько на сервере ОЗУ свободно, пока я не слежу (смотрю в htop) за сервером.
-
liaonau
- Сообщения: 390
- ОС: gentoo
Re: Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?
Ну, штатными средствами coreutils и т.п. что-то типа этого:
Код: Выделить всё
echo 0 > myfile
while true; do x=$(free|grep '^-\/+'|awk '{print $3}'); [[ $(( $(cat myfile) < $x )) -eq 1 ]] && echo $x > myfile; sleep 1; doneХотя наверное для этого есть специализированные решения, гораздо более оптимальные, никогда не задумывался.
Спасибо сказали: