2

У меня есть сервер Linux. Я хотел бы отслеживать объем используемой памяти, и если он превышает определенный порог (скажем, 512 МБ), он автоматически отправит электронное письмо администратору.

Как я могу это сделать?

1 ответ1

1

Вы можете получить использование памяти с помощью free команды. Небольшой разбор его выходных данных даст вам текущую используемую память:

free -m | awk '/buffers\/cache/ {print $3}'

Затем вы можете отправить электронное письмо с помощью команды mail (при условии, что цепочка почты уже настроена на вашем сервере):

echo -e "Mail content." | mail -s "Subject" "destination@expample.com"

При этом вы можете написать небольшой sh скрипт, проверяющий использование памяти и отправляющий почту при необходимости:

#!/bin/sh
memuse=$(free -m | awk '/buffers\/cache/ {print $3}')
if [ $memuse -ge 512 ]; then
    message="RAM limit exceeded in server alpha.\nCurrent use is $memuse MiB."
    echo -e "$message" | mail -s "RAM monitoring" "admin@example.com"
fi

Теперь вам просто нужно периодически запускать этот скрипт. Например, мы можем использовать cron для запуска каждую минуту, добавив в /etc/crontab :

* * * * * /root/ram_monitoring.sh

(при условии, что вы сохранили скрипт в /root/ram_monitoring.sh и у вас есть работающий cron deamon.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .