Ads 468x60px

понедельник, 3 сентября 2012 г.

Nagios, уведомления sms через sms24x7

Задача: в нерабочие часы, уведомлять о критических ошибках по смс.
Используемые средства: смс шлюз sms24x7.
Скрипт для отправки sms.
На основе статьи Пример работы с API Яндекс.Директа и php библиотеки sms24×7 я подготовил небольшой модуль Sms24x7.pm :раскрыть
А сам скрипт(sms.pl) для отправки смс выглядит так:
#!/usr/bin/perl
# sms.pl
# use module
use Sms24x7;
use Getopt::Std;

my %options;
getopts("htp:n:m:",\%options);

if ($options{h}){
    print <<EOF;
Syntax: $0 [-h | -p 7xxxyyyzzzz -n senderName -t message]

    -h : This help message
    -p : recipient phone number in international format
    -n : sender name, no more than 11 symbols Latin (GSM_0338)
    -m : message text, ASCII or UTF-8
    -t : test mode, message don`t rated and doesn't go

EOF
    exit;
} elsif (!$options{p}){
        die "need option: -p 7xxxyyyzzzz phone number\n";
} elsif (!$options{n}){
        die "need option: -n sender name\n";
} elsif (!$options{m}){
        die "need option: -m message text\n";
} else {
    my $test = 0;
    $test = 1 if $options{t};

# * @param $email, $passwrod - login info
# CHANGE THIS!!!
    my $email = 'user@mail.ru';
    my $pass = 'secret';
# * @param $phone - recipient phone number in international format (like 7xxxyyyzzzz)
# * @param $text - message text, ASCII or UTF-8.
    print Sms24x7::smsapi_push_msg_nologin_v1({
         test => $test, # For test without send the message and doesn't change balance
         email => $email,
         password => $pass,
         sender_name => $options{n},
         phone => $options{p},
         text => $options{m}
    });
exit 0;
}