
Я хочу создать bash на своем сервере, чтобы регистрировать часть вывода "free" и "top" каждые 60 секунд. Я знаю, как настроить задание cron, но не имею ни малейшего представления, как получить вывод "free" и "top", проанализировать их и сохранить в файле (добавив его).
Например, когда я запускаю «top», я хотел бы сохранить только эту часть:
%ЦП: 18,2 мкс,
И когда я запускаю «free», я хочу сохранить только столбец «available» первой строки (Mem:).
Так как же мне сделать этот bash в Centos 7?
решение1
Если вы хотите осуществлять мониторинг каждую минуту, я бы рекомендовал использовать среднюю загрузку ЦП вместо текущего использования.
cat /proc/loadavg | awk '{print "Load last minute:", $1}'
Эта строка покажет вам среднюю загрузку ЦП за последнюю минуту, что точнее, чем % использования ЦП, поскольку у вас может быть пик в 100% и вы сможете сохранить его, даже если средняя загрузка будет намного меньше.
решение2
С использованием awk
:
top -n 1 | awk '/^%Cpu\(s\)/ {print "%Cpu(s)", $2, "us"}'
free | awk '/^Mem:/ {print $7}'