Você pode obter o uso da memória através do comando free
. Uma pequena análise de sua saída fornecerá a memória usada atualmente:
free -m | awk '/buffers\/cache/ {print $3}'
Em seguida, você pode enviar um e-mail usando o comando mail
(supondo que a cadeia de e-mails já esteja configurada no seu servidor):
echo -e "Mail content." | mail -s "Subject" "[email protected]"
Com isso, você pode escrever um pequeno script sh
para verificar o uso da memória e enviar e-mails, se necessário:
#!/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" "[email protected]"
fi
Agora, você só precisa executar esse script periodicamente. Podemos, por exemplo, usar cron
para executá-lo a cada minuto, adicionando a /etc/crontab
:
* * * * * /root/ram_monitoring.sh
(supondo que você salvou o script em /root/ram_monitoring.sh
e você tem um deamon cron em funcionamento.)