среда, 18 апреля 2012 г.

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

Есть у меня один сервер, который ведет себя не по-мужски, отваливается и не сообщает об этом. Поэтому надо его мониторить.
Уверен, что поиск даст 100500 вариантов мониторинга, но мне надо было сделать быстро и чтоб работало.
Итак, снова питон:

from ftplib import FTP
import smtplib

try :
    ftp = FTP('hostname.com')
    ftp.close()
except :
    print ('error')
    server = smtplib.SMTP('smtpserver.com')
    server.set_debuglevel(1)
    msg = 'Subject: ALARM!\nFrom: alert@smtpserver.com\n
    To: arakelov.az@smtpserver.com\n\n'
    server.sendmail('alert@smtpserver.com',
    'arakelov.az@smtpserver.com', msg+'\nServer is not responding')
    server.quit()


Если не получается зайти по FTP, то шлем письмо, что не отвечает.
Тут используется отправка почты без аутентификации, ну у меня так и есть.
Скрипт в кроне отрабатывает каждый час.

четверг, 12 апреля 2012 г.

Создание полной структуры каталогов

Наконец-то!
Как же давно я хотел написать эту функцию!
Функция создает полную структуру каталогов из входной строки. Допустим, мы собираемся копировать файл из папки C:\temp в папку D:\dir1\dir2\dir3\ а на диске D нет даже dir1
Итак, вот она


def makedirectory (dirname):
        start = dirname.find('\\')+1 #здесь мы пропускаем название диска
        i = 1
        while i < dirname.count('\\') :
                try :
                        os.mkdir (dirname[0:dirname.find('\\',start)])
                except :
                        print ('exists')
                finally :
                        start = dirname.find('\\',start)+1
                        i = i + 1