Архивы | Декабрь2012

синхронизация

http://habrahabr.ru/post/132098/

Далее...

по андроиду

http://developer.alexanderklimov.ru/android/

Далее...

Проверка доступности сервисов

#!/bin/bash

################################################################################################
# Проверка статуса apache, nginx, mysql, ssh и перезагрузка сервисов при необходимости
################################################################################################

# Команда для отправки почты
MAILCMD="$(which mail)"
# Файл письма
MAILMESSAGE="/tmp/vps_service.fail.$$"
# Email, куда слать уведомления
EMAILID="mylo@gmail.com"

# Функция для отправки письма
mail_doxer()
{
$MAILCMD -s "Уведомление о проблемах на VPS-сервере $(hostname)" $EMAILID < $MAILMESSAGE
}

echo "Данное письмо отправлено Вам, так как были обнаружены проблемы">>$MAILMESSAGE
echo "на сервере $(hostname), а Ваш адрес указан в скрипте для таких уведомлений">>$MAILMESSAGE
echo "----------------------------------------------------------------------------------------------------" >>$MAILMESSAGE
echo "">>$MAILMESSAGE

ApacheThread=`ps -A|grep apache2|wc -l`
NginxThread=`ps -A|grep nginx|wc -l`
MysqldThread=`ps -A|grep mysql|wc -l`
SSHThread=`ps -A|grep ssh|wc -l`

#
# Проверяем, запущен ли apache2
#

if [ $ApacheThread -eq 0 ]; then
echo "ОШИБКА:">>$MAILMESSAGE
echo "-- При проверке обнаружено, что веб-сервер Apache не был запущен!">>$MAILMESSAGE
echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE
# Пытаемся запустить сервис
/etc/init.d/apache2 start
# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1
# Проверяем, работает ли сервис после выполнения скрипта
echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE
ApacheThreadAfter=`ps -A|grep apache2|wc -l`
if [ $ApacheThreadAfter -eq 0 ]; then
echo "-- Apache сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE
echo "">>$MAILMESSAGE
else
echo "-- Apache сейчас запущен..." >>$MAILMESSAGE
echo "">>$MAILMESSAGE
fi
fi

#
# Проверяем, запущен ли nginx
#

if [ $NginxThread -eq 0 ]; then
echo "ОШИБКА:">>$MAILMESSAGE
echo "-- При проверке обнаружено, что веб-сервер Nginx не был запущен!">>$MAILMESSAGE
echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE
# Пытаемся запустить сервис
/etc/init.d/nginx start
# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1
# Проверяем, работает ли сервис после выполнения скрипта
echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE
NginxThreadAfter=`ps -A|grep nginx|wc -l`
if [ $NginxThreadAfter -eq 0 ]; then
echo "-- Nginx сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE
echo "">>$MAILMESSAGE
else
echo "-- Nginx сейчас запущен..." >>$MAILMESSAGE
echo "">>$MAILMESSAGE
fi
fi

#
# Проверяем, запущен ли mysql
#

if [ $MysqldThread -eq 0 ]; then
echo "ОШИБКА:">>$MAILMESSAGE
echo "-- При проверке обнаружено, что MySQL-сервер не был запущен!">>$MAILMESSAGE
echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE
# Пытаемся запустить сервис
/etc/init.d/mysql start
# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1
# Проверяем, работает ли сервис после выполнения скрипта
echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE
MysqldThreadAfter=`ps -A|grep mysql|wc -l`
if [ $MysqldThreadAfter -eq 0 ]; then
echo "-- MySQL-сервер сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE
echo "">>$MAILMESSAGE
else
echo "-- MySQL-сервер сейчас запущен..." >>$MAILMESSAGE
echo "">>$MAILMESSAGE
fi
fi

#
# Проверяем, запущен ли ssh-сервер
#

if [ $SSHThread -eq 0 ]; then
echo "ОШИБКА:">>$MAILMESSAGE
echo "-- При проверке обнаружено, что SSH не был запущен!">>$MAILMESSAGE
echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE
# Пытаемся запустить сервис
/etc/init.d/ssh start
# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1
# Проверяем, работает ли сервис после выполнения скрипта
echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE
SSHThreadAfter=`ps -A|grep ssh|wc -l`
if [ $SSHThreadAfter -eq 0 ]; then
echo "-- SSH сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE
echo "">>$MAILMESSAGE
else
echo "-- SSH сейчас запущен..." >>$MAILMESSAGE
echo "">>$MAILMESSAGE
fi
fi

# Получаем текущее значение LA
LOAD=`uptime | grep -o 'load average.*' | cut -c 15-18`

# Если оно больше указанного ниже значения, то это также повод для беспокойства
if [ $LOAD \> 15.0 ]; then
echo "ВНИМАНИЕ!!! Слишком большая нагрузка!" >>$MAILMESSAGE
echo "-- Текущий Load Average: $LOAD " >>$MAILMESSAGE
else
echo "-- Текущий Load Average: $LOAD " >>$MAILMESSAGE
fi

echo "----------------------------------------------------------------------------------------------------" >>$MAILMESSAGE
echo "*** Это письмо сгенерировано скриптом $(basename $0) ***" >>$MAILMESSAGE
echo "*** Не стоит отвечать на это письмо, это всего лишь уведомление ***" >>$MAILMESSAGE

# Проверяем, был ли нерабочим хоть один из проверяемых сервисов, если да, то шлем емэйл
if [ $ApacheThread -eq 0 ] || [ $NginxThread -eq 0 ] || [ $MysqldThread -eq 0 ] || [ $SSHThread -eq 0 ] || [ $LOAD \> 15.0 ]; then
mail_doxer
fi

# "Вздремнем" на секундочку (так, на всякий пожарный)
sleep 1

#Удаляем временный файл письма
rm -f $MAILMESSAGE

Далее...