Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен небольшой скрипт, помогите 
:(
    Опции темы
glat
Дата 30.4.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Сам перла не знаю, но очень нужен скрипт (под юникс) прошу помочь

есть диапазон 10,1,1,1-254
нужно через определенный промежуток времени (это можно по крону запускать) пинговать системной командой одновременно весь диапазон (или по 30-40 адресов) и анализировать результат.
если получен ответ от хоста то отправить письмо на 1й емайл, если не получен ответ или с потерями то отправить на 2й.
PM MAIL   Вверх
amg
Дата 30.4.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Для начала нужно скачать и установить программу, позволяющую делать массированный ping. Называется fping. Аналогичная программа с тем же названием идет в составе перловского модуля Net::Ping. Последняя, наверное, даже лучше, т.к. не требует рутовых привеллегий и пинговать может по TCP по любому порту.

Это сообщение отредактировал(а) amg - 30.4.2007, 20:30
PM MAIL   Вверх
glat
Дата 30.4.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Это без проблем. поставлю
PM MAIL   Вверх
amg
Дата 30.4.2007, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Ну, тогда начало скрипта, пингование
Код

#!/usr/bin/perl -w

@IP = map {'10.1.1.' . $_} 1..254;

open RES, "fping @IP |" or die;
while (<RES>) {
  print;
}
close <RES>;

Остальное - потом, или кто-нибудь другой поможет, а я - баиньки.

Это сообщение отредактировал(а) amg - 30.4.2007, 20:47
PM MAIL   Вверх
amg
Дата 1.5.2007, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Вот скрипт. Использует системные команды fping и mail (mailx, nail). Если поставить модуль Net::Ping (и fping из него [я пробовал именно этот fping]) и какой-нибудь почтовый модуль (и почту посылать им, а не системной командой), то будет независимость от платформы.
Код

#!/usr/bin/perl -w

$net = '10.1.1.';
@IP = map {$net . $_} 1..254;

$fping = '/usr/local/bin/fping';
-x $fping or die "No $fping\n";

$mail = '/usr/bin/mail';
-x $mail or die "No $mail\n";

@response = `$fping -e @IP`;
@response = sort {$a=~/$net(\d+)/;$A=$1;$b=~/$net(\d+)/;$A<=>$1} @response;

open ALIVE, "| $mail -s 'Alive in $net' address1\@domen.ru" or die "$!\n";
open UNREACHABLE, "| $mail -s 'Unreachable in $net' address2\@domen.ru" or die "$!\n";

foreach (@response) {
  print ALIVE if /is alive/;
  print UNREACHABLE if /is unreachable/;
}

close ALIVE;
close UNREACHABLE;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.