Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование по FTP (http://forum.oszone.net/showthread.php?t=319242)

SenatoR_Dmr 28-09-2016 18:33 2673122

Копирование по FTP
 
Доброго времени суток.
Есть код:
Код:

@echo off
::Задаем параметры подключения
set host=
set user=
set password=
set FTPfolder=/%date:~6%-%date:~3,2%-%date:~0,2%
set fileMask=*
set LocalFolder=\\comp\share
set backuplog=\\comp\share\backuplog.txt
set msgfile=\\comp\share\msgfile.txt
 
::Создаем временный файл команд для утилиты FTP.exe и папку с архивами
md  %LocalFolder%
set BackupFTP="%temp%\FTP_Backup.txt"
 
::Генерируем файл FTP команд
> %BackupFTP% (
  echo open %host%
  echo %user%
  echo %password%
  echo binary
  echo prompt
  echo lcd %LocalFolder%
  echo cd %FTPfolder%
  echo mget %fileMask%
  echo disconnect
  echo quit
)
 
::Добавляем утилиту FTP в исключения брандмауера Windows
netsh advfirewall firewall add rule name="FTP" dir=in action=allow program="%windir%\system32\ftp.exe" enable=yes
 
::Запускаем на выполнение пакетник команд FTP и записываем предварительный лог
ftp.exe -s:%BackupFTP%

Он тягает с FTP один большой файл. Если интернет пропадает, батник зависает. Никакой ошибки не выдает, при стабилизации работы интернета закачка не продолжается, батник все также висит.

Как восстанавливать соединение с FTP после потери соединения? Или как сделать, чтобы выдавалась ошибка при потере соединения?

greg zakharov 28-09-2016 22:11 2673173

SenatoR_Dmr, ftp.exe в винде довольно уежищная штука, лучше воспользоваться ее продвинутыми аналогами от сторонних разработчиков, либо использовать PowerShell, в котором можно реализовать различные свистоперделки вроде индикатора процесса загрузки файла и сообщений о потере соединения с сервером.

Elven 29-09-2016 14:19 2673352

Через виндовый FTP это действительно проблема. У себя похожую проблему я решил перейдя на robocopy. Если же важно сделать именно через FTP, можно попробовать мониторить изменение файла в папке, если он перестал изменяться - грохнуть FTP и копировать заново.

lxa85 29-09-2016 16:03 2673386

SenatoR_Dmr, я бы предложил использовать wget аналог под Windows.
у него есть ключи -n для продолжения загрузки.
И у него должен быть более информативный вывод.

greg zakharov 29-09-2016 17:06 2673412

lxa85, да хоть curl'ом - сути дела не изменит: ftp.exe использовать не стоит.


Время: 14:31.

Время: 14:31.
© OSzone.net 2001-