У меня есть приведенный ниже командный сценарий, выполняемый как запланированная задача на моем Win 2012 Server без каких-либо проблем. Я хочу повторить это на клиентском компьютере Win 7 x64.

echo user [username]>> c:\ftp1.dat
echo [my password]>> c:\ftp1.dat
echo bin>> c:\ftp1.dat
echo mkdir web2>> c:\ftp1.dat
echo cd web2>> c:\ftp1.dat
echo mkdir clientpc_%date:~-2,4%-%date:~-7,2%-%date:~-10,2%>> c:\ftp1.dat
echo cd clientpc_%date:~-2,4%-%date:~-7,2%-%date:~-10,2%>> c:\ftp1.dat
echo ascii>> c:\ftp1.dat
echo quote pasv>> c:\ftp1.dat
echo mput c:\Users\Administrator\Documents\backup_temp\*.*>> c:\ftp1.dat
echo quit>> c:\ftp1.dat
echo bye>> c:\ftp1.dat
ftp -n -s:c:\ftp1.dat -i ftp.livedrive.com
del c:\ftp1.dat

Однако, когда я добираюсь до mput, командная строка информирует меня

  1. 200 ПОРТ КОМАНДА УСПЕШНАЯ
  2. 150 Прием данных

В этот момент процесс просто зависает. Нет ошибок, нет тайм-аута, ничего. Я ничего не значу в течение 5-10 минут.

Установка запускает Norton 360, на котором отключен брандмауэр.

Я также пробовал активный режим.

Обратите внимание, что более ранние команды MKDIR работают, поэтому, по-видимому, нет проблем с контактом сервера. Я не могу найти какую-либо помощь в Интернете. Кажется, у всех с моей проблемой возникает проблема тайм-аута, но здесь дело не в этом.

Спасибо

1 ответ1

1

Это проблема подключения. Для FTP необходимы управляющие соединения для основных команд, таких как login и mkdir, а для реальной передачи данных он открывает другое TCP-соединение: в пассивном режиме сервер открывает прослушиватель на случайном порту и сообщает клиенту свой адрес, а в активном режиме - клиент открывает прослушиватель на случайном порту и сообщает серверу об этом.

Контрольное соединение работает для вас, но соединение для передачи данных нет. Это означает, что что-то ограничивает возможности соединения, например, какой-то брандмауэр на вашем компьютере, на сервере или где-то посередине.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .