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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка доступности FTP хоста, Возможно ли реализовать? 
V
    Опции темы
tapio
Дата 2.2.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет! Столкнулся с такой проблемой. У меня есть список ftp хостов, к которым я по очереди конекчусь и забираю от туда файлы. Выявилась такая проблема, что при недоступности какого то из этих хостов, цикл прерывается. Каким образом можно обойти это? А то что то я не соображу. :(
Код

    my $query = "SELECT t.fix_switch_id, t.ip_address, t.ftp_port, t.ftp_login, t.ftp_pas FROM nss_fix_switch t";
    my $result = DB::sql_q($query);
    my $i;
    my $ftp_host;
    my $ip_address;
    my $ftp_port;
    my $ftp_login;
    my $ftp_pass;
    for ($i=0; $i<@$result; $i++) {
        $ip_address = $result->[$i][1];
        $ftp_port = $result->[$i][2];
        $ftp_host = $ip_address.":".$ftp_port;
        my $ftp = Net::FTP->new($ftp_host) or die "Can't connect to $ftp_host: $@ \n";
        $ftp_login = $result->[$i][3];
        $ftp_pass = $result->[$i][4];
        $ftp->login($ftp_login,$ftp_pass) or die "Can't login \n";
        $ftp->binary();
    }   


PM MAIL   Вверх
amg
Дата 2.2.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Попробуйте заменить строку
Код
my $ftp = Net::FTP->new($ftp_host) or die "Can't connect to $ftp_host: $@ \n";

на
Код
my $ftp = Net::FTP->new($ftp_host);
if (! $ftp) {
  warn "Can't connect to $ftp_host: $@ \n";
  next;
}


Аналогично,
Код
$ftp->login($ftp_login,$ftp_pass) or warn("Can't login to $ftp_host\n"), next;


PM MAIL   Вверх
ginnie
Дата 2.2.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



amg, понятнее будет 

Код

$ftp->login($ftp_login,$ftp_pass) or do{ warn("Can't login to $ftp_host\n"); next; };



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
amg
Дата 2.2.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(ginnie @  2.2.2009,  13:09 Найти цитируемый пост)
понятнее будет
Действительно, понятнее smile 

PM MAIL   Вверх
tapio
Дата 2.2.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


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

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


 




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


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

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