tendo problemas para limpar um diretório e fazer upload de arquivos por meio de um arquivo em lote

0

Estou executando o Filezilla-Server em um servidor Windows 2012R2 Standard. Eu estou tentando ftp em e enviar arquivos de outro servidor padrão do Windows 2012R2.

Estou executando este arquivo em lotes:

@echo off
cls
echo open xxx.xxx.xxx.xxx> ftpcmd.dat
echo user xxxxxxxxx>> ftpcmd.dat
echo xxxxxxxx>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo lcd %1>> ftpcmd.dat
echo lcd %1zip>> ftpcmd.dat
echo pwd>> ftpcmd.dat
echo mdelete *>> ftpcmd.dat
echo mkdir %1>> ftpcmd.dat
echo cd %1>> ftpcmd.dat
echo mput *.*>> ftpcmd.dat
echo quit>> ftpcmd.dat
@echo on
ftp -i -n -s:ftpcmd.dat 

Estes são os resultados quando o executo:

C:\backup>ftp -i -n -s:ftpcmd.dat
ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220-FileZilla Server version 0.9.44 beta
220-written by Tim Kosse ([email protected])
220 Please visit http://sourceforge.net/projects/filezilla/
ftp> user xxxxxxxxx
331 Password required for xxxxxxxxx

230 Logged on
ftp> bin
200 Type set to I
ftp> lcd ppsvm
Local directory now C:\backup\ppsvm.
ftp> lcd ppsvmzip
Local directory now C:\backup\ppsvm\ppsvmzip.
ftp> pwd
257 "/" is current directory.
ftp> mdelete *
_   <-- it just sticks here and goes nowhere

Como você pode ver no ^ acima, ele pára no mdelete e não faz mais nada.

Eu verifiquei o log do Filezilla-Server e ele mostra isso:

8:28:21 AM - (not logged in)> Connected, sending welcome message...
8:28:21 AM - (not logged in)> 220-FileZilla Server version 0.9.44 beta
8:28:21 AM - (not logged in)> 220-written by Tim Kosse ([email protected])
8:28:21 AM - (not logged in)> 220 Please visit http://sourceforge.net/projects/filezilla/
8:28:21 AM - (not logged in)> USER xxxxxxxxxxxxx
8:28:21 AM - (not logged in)> 331 Password required for xxxxxxxxxxxxx
8:28:21 AM - (not logged in)> PASS ****************
8:28:21 AM - xxxxxxxxxxxxx> 230 Logged on
8:28:21 AM - xxxxxxxxxxxxx> TYPE I
8:28:21 AM - xxxxxxxxxxxxx> 200 Type set to I
8:28:21 AM - xxxxxxxxxxxxx> XPWD
8:28:21 AM - xxxxxxxxxxxxx> 257 "/" is current directory.
8:28:21 AM - xxxxxxxxxxxxx> TYPE A
8:28:21 AM - xxxxxxxxxxxxx> 200 Type set to A
8:28:21 AM - xxxxxxxxxxxxx> PORT xxx,xxx,xxx,xxxx,xxxx,xxxx
8:28:21 AM - xxxxxxxxxxxxx> 200 Port command successful
8:28:21 AM - xxxxxxxxxxxxx> NLST *
8:28:21 AM - xxxxxxxxxxxxx> 150 Opening data channel for directory listing of "/*"
8:28:32 AM - xxxxxxxxxxxxx> 425 Can't open data connection for transfer of "/*"

Eu tenho o servidor Filezilla adicionado às configurações do meu firewall:

Eu até desliguei o Firewall para verificar se ele não estava interferindo, então não acredito que seja o firewall.

Não sei o que está acontecendo. Alguém tem alguma sugestão?

    
por ErocM 23.05.2014 / 16:25

1 resposta

2

O FTP ativo é bidirecional (a conexão de controle é client- > srv, cliente de conexão de dados srv - > portanto, precisa permitir conexões de entrada em portas específicas para o cliente e do servidor.

Aqui está uma citação do Wiki do FileZilla (que tem uma boa explicação sobre o interior do ftp)

What distinguishes FTP from most other protocols is the use of secondary connections for file transfers. When you connect to an FTP server, you are actually making two connections. First, the so-called control connection is established, over which FTP commands and their replies are transferred. Then, in order to transfer a file or a directory listing, the client sends a particular command over the control connection to establish the data connection.

(...)

In active mode, the client opens a socket on the local machine and tells its address to the server using the PORT command. Once the client issues a command to transfer a file or listing, the server will connect to the address provided by the client.

Você também encontrará informações sobre configuração de firewall para cliente e servidor no wiki.

    
por 23.05.2014 / 19:51