тайм-аут lftp не работает

#ftp

#ftp

Вопрос:

Я использую следующую команду для установки тайм-аута команды lftp, чтобы, если сервер недоступен или не принимает какое-либо новое соединение, команда завершалась через 10 секунд.

 lftp -e 'set ftp:passive-mode true; set net:timeout 10; cd /OUT; mput $filename; bye' -u mylftpuser,mypassword myhost.com
  

Однако, похоже, что тайм-аут не работает. Когда я запускаю вышеупомянутую команду в командной строке, она повторяет попытку подключения через 30 секунд, 45 сек. .. 60 сек…и никогда не заканчивается.

Я делаю что-то не так здесь?

Спасибо.

Ответ №1:

У меня была такая же проблема с таймаутом, который не работал, когда я использовал:

 lftp -e "set net:timeout 5" -u user,pwd server
  

Я удалил -e "set..." часть и использую только lftp -u user,pwd server , а команды вставляют ее в файл ~/.lftp/rc:

 cat ~/.lftp/rc
set net:timeout 5
set net:max-retries 2
set net:reconnect-interval-base 5
  

Сейчас у меня все работает нормально.

Комментарии:

1. у меня работает, но мой файл конфигурации /etc/lftp.conf

Ответ №2:

Вместо net:timeout 10 попробуйте это:

 set net:reconnect-interval-base 5; set net:max-retries 2;
  

Ответ №3:

Это из-за очень высокого значения по умолчанию net:max-retries 1000 , которое:

максимальное количество последовательных попыток операции без успеха. 0 означает неограниченный. 1 означает, что повторных попыток нет.

Измените его (в вашем конфигурационном файле ~ /.lftp) на что-то вроде 5, и все готово.

Ответ №4:

В документации вы можете найти дополнительную информацию о расположении настроек и доступных параметрах. Ниже вы можете увидеть расположение файлов настроек.

При запуске выполняется lftp ~/.lftprc и ~/.lftp/rc (или, ~/.config/lftp/rc если ~/.lftp не существует). Вы можете размещать псевдонимы и задавать команды там. Некоторые пользователи предпочитают видеть полную отладку протокола, используйте debug для включения отладки.

В /etc/lftp.conf также есть файл запуска всей системы. Это может быть в другом каталоге, см. раздел ФАЙЛЫ.