Выслать сообщение по почте при падении сервиса и автоматически его поднимать обратно

Рейтинг: 0Ответов: 1Опубликовано: 14.02.2011

У меня стоит сервер IP телефонии (PBX - trixbox). Это дело у меня висит под линуксом CentOS 5. Скрипт должен высылать сообщение по почте при падении сервиса и автоматически его поднимать обратно.

Ответы

▲ 4
import subprocess

def check_service_exists():
    result = None
    pass
    return result

def start_service():
    subprocess.call([start_service,"param1", "param2"])
    return 0

def send_email(text):
    msg_head = 'From: from@yyy.ua\n'
    msg_head += 'To: to@yyy.ua\n'
    msg_head += 'Subject: ' + subject + '\n\n'
    try:
        mail = smtplib.SMTP(10.10.10.10)
        mail.ehlo('me')
        mail.sendmail( 'from@yyy.ua', 'to@yyy.ua', msg_head + text)
        mail.quit()
    except:
        print("Cannot send email.")
    else:
        print("Alert message was sent.")
    return 0

if not check_service_exists():
    send_email('Шеф, все пропало!')
    start_service()    
else:
    pass

Добавляешь скрипт в крон. Как проверить запущен ли сервис, нужно думать отдельно...