#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
также есть файл запуска всей системы. Это может быть в другом каталоге, см. раздел ФАЙЛЫ.