Статус сервера за допомогою BASH

Скрипт перевірки навантаження load average:

#!/bin/bash
loadavg=`uptime | awk '{print $10+0}'`
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`
if [ "$thisloadavg" -ge "2" ]; then
echo "Busy - Load Average $loadavg ($thisloadavg) "
top -bn 1
else
echo "Okay - Load Average $loadavg ($thisloadavg) "
fi

Скрипт перевірки статусу apache (centos):

#!/bin/bash
ps cax | grep httpd 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "HTTPD is running."
else
echo "HTTPD is not running."
fi

Якщо ubuntu, то:

#!/bin/bash
ps cax | grep apache2 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "HTTPD is running."
else
echo "HTTPD is not running."
fi

Таким чином можна перевіряти будь-які сервіси, наприклад nginx:

#!/bin/bash
ps cax | grep nginx 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "NGINX is running."
else
echo "NGINX is not running."
fi

Або mysql:

#!/bin/bash
ps cax | grep mysql 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "MYSQL is running."
else
echo "MYSQL is not running."
fi

За аналогією можна налаштувати відправку повідомлень в telegram, якщо наприклад load average високий:

#!/bin/bash
loadavg=$(uptime | awk '{print $10+0}')
thisloadavg=$(echo $loadavg|awk -F \. '{print $1}')
if [ "$thisloadavg" -ge "2" ]
then
ID_USER=849489845
TOKEN_BOT=999999999:Afwe98yUw3kj-O-8NdwIOIwnp2452131
in=$(echo -e "HARD LOAD AVERAGE")
message=$in
curl -s -X POST "https://api.telegram.org/bot"$TOKEN_BOT"/sendMessage" -F chat_id=$ID_USER -F text="$message"
fi

Де, ID_USER — ВАШ ID
TOKEN_BOT — токен бота.

Goodhoster.NET
Додати коментар