Как получить статистику мемкеш: запросить локальный memcached, вычислить соотношение попаданий/получений и вывести его.

echo -en "stats\r\n" "quit\r\n" | nc localhost 11211 | tr -s [:cntrl:] " "| cut -f42,48 -d" " | sed "s/\([0-9]*\)\s\([0-9]*\)/ \2\/\1*100/" | bc -l


Команда echo отправляет строку текста с определенным содержанием в стандартный вывод. Флаг -e позволяет интерпретировать контрольные символы (например, \r — возврат каретки), а флаг -n предотвращает добавление новой строки в конце вывода. Дальше команда использует «|» для передачи вывода предыдущей команды в следующую — для отправки строки текста в memcached с помощью netcat (nc) и выполнения команды «stats», а затем выполнения команды «quit».

Затем команда tr заменяет серии подряд идущих управляющих символов на пробелы (это используется в сочетании с командой cut). Команда cut выбирает два поля текста (которые разделяются пробелом) из входного потока — это как раз то, что нам нужно для вычисления соотношения.

Команда sed заменяет два числа, разделенных пробелом, на их отношение с использованием регулярного выражения. Команда bc-л вычисляет эту математическую операцию. По итогу мы получаем соотношение попаданий/получений для локального memcached-сервера.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *