Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

p22s
Сообщения: 158

Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?

Сообщение p22s »

Как записывать максимальное значение оперативной памяти из htop каждую секунду (если возможно, то еще чаще) в файл, в первую строку, перетирая предыдущее значение?
Чтобы можно было зайти и посмотреть какое максимальное значение ОЗУ было.
Спасибо сказали:
liaonau
Сообщения: 390
ОС: gentoo

Re: Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?

Сообщение liaonau »

Что подразумевается под максимальным значением оперативной памяти из htop?

htop написанный с использованием ncurses предназначен для интерактивного использования. В зависимости от того, что подразумевается для скриптования стоит использовать free или ps.
Спасибо сказали:
p22s
Сообщения: 158

Re: Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?

Сообщение p22s »

liaonau, ну да, я могу ошибаться..
Мне нужно получить значение ОЗУ, которое потребляется на сервере.

Т.е. всего ОЗУ 1024mb, а в 12 часов потреблялось 101мб, в 13 часов 127мб, в 14 часов 95мб,
значит максимальное будет 127.

Т.е. я хочу понимать сколько максимум ОЗУ в течение суток, с интервалом в секунду, использовалось.

Чтобы я понимал, сколько на сервере ОЗУ свободно, пока я не слежу (смотрю в htop) за сервером.
Спасибо сказали:
liaonau
Сообщения: 390
ОС: gentoo

Re: Как записывать максимальное значение оперативной памяти из htop каждую секунду в файл?

Сообщение liaonau »

p22s писал(а):
09.08.2014 07:11
Т.е. всего ОЗУ 1024mb, а в 12 часов потреблялось 101мб, в 13 часов 127мб, в 14 часов 95мб,
значит максимальное будет 127.

Ну, штатными средствами coreutils и т.п. что-то типа этого:

Код: Выделить всё

echo 0 > myfile
while true; do x=$(free|grep '^-\/+'|awk '{print $3}'); [[ $(( $(cat myfile) < $x )) -eq 1 ]] && echo $x > myfile; sleep 1; done

Хотя наверное для этого есть специализированные решения, гораздо более оптимальные, никогда не задумывался.
Спасибо сказали: