понедельник, 17 ноября 2014 г.

ftp 150 opening data connection

Ftp 150 opening data connection

Небольшая статейка по решению проблемы ftp клиента командной строки Windows 7 (XP).
Случилась как-то в моей практике одна запарка, не мог нормально подключиться к FTP серверу на FileZilla из командной строки Windows, пассивный режим тоже не помогал. Причем эта ошибка вылезала только если подключался из командной строки, при подключении добавлении ярлыка в сетевое окружение все происходит нормально, также не наблюдалось глюков при использовании FileZilla клиент и FTP клиента TotalCommander в пассивном режиме.
Вообще после долгих ковыряний выбор пал на программку WinSCP, скачать ее можно с официального сайта winscp.net. С ней этой ошибки не возникает.
Работа с ней проста, вот пример запуска а также автоматизации копирования файлов на FTP (здесь в пример дан как автоматизировать процесс копирования файлов у которых в конце есть текущая дата.
1) Запускаем так в cmd
"C:\Program Files (x86)\WinSCP\WinSCP.com"
2) Соединяемся с сервером
open ftp://User:Passowrd@host.domain.com -passive=on
3) Далее вводим нужные ftp команды

Пример автоматизации копирования файлов, здесь мы создаем времееный файл со сценарием для WinSCP, затем передаем его имя в качестве сценария в WinSCP, в конце удаляем
@ echo off
echo option batch abort > ftpcmd.ini
echo option confirm off >> ftpcmd.ini
echo open ftp://User:Passowrd@host.domain.com -passive=on -passive=on >> ftpcmd.ini
echo cd /im_basese >> ftpcmd.ini
echo put E:\BACKUP\file1_%date%.rar >> ftpcmd.ini
echo put E:\BACKUP\file2_%date%.rar >> ftpcmd.ini
echo exit >> ftpcmd.ini
"C:\Program Files\WinSCP\WinSCP.com" /script=E:\BACKUP\ftpcmd.ini /log="E:\BACKUP\winscp.log"
del ftpcmd.ini
exit
pause