Ir ao conteúdo
  • Cadastre-se

Bat como criar um arquivo .bat para fazer download de arquivos de log via ftp


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Boa tarde pessoal,

todo dia pela manhã preciso fazer o download de mais ou menos 300 arquivos de logs para rodar um script em python e analisar eles a procura de erros, minha dúvida é a seguinte: 
Utilizamos o WinSCP pra fazer esse acesso via FTP pra copiar os arquivos, queria fazer esse processo automaticamente via bat pra facilitar minha vida, se alguém souber como fazer ajudaria muito. 

 

Link para o comentário
Compartilhar em outros sites

@ricardo_br quando acesso via WinSCP ja vai pra pasta raiz, eu copio tudo que tem la exceto a unica pasta que tem la dentro que e backup dos dias anteriores, eles também não estão numerados, estão organizados por ordem alfabética... 
A intenção é pegar todos arquivos .txt desse diretório exceto a pasta e jogar pra uma pasta local.

Link para o comentário
Compartilhar em outros sites

@ricardo_br Isso, seria usando o WinSCP (se tiver alguma solução mais fácil também, aceito dicas rs como não conheço esse tipo de processo não sei dizer)

 

Servidor ele usa um centos, provavelmente num S3 da AWS mas não sei exatamente pois já peguei a máquina configurada. 

Link para o comentário
Compartilhar em outros sites

Veja se é isso mesmo:

 

Ups..não tinha visto que a extensão dos arquivos na verdade é *.txt e não *.log, mais ai é só trocar no arquivo bat...

 

 

@echo off

:: Informe aqui o caminho para o WinScp:
set "Winscp=%localappdata%\Programs\WinSCP\winscp.com"

:: Informe seu Servidor FTP
set Servidor=ftp.drivehq.com

:: Informe o nome do usuario do seu FTP:
set Usuario=

:: Informe a senha do seu FTP:
set Senha=

:: Informe a Pasta remota:
set PastaR=/

:: Informe a extensão dos arquivos que quer:
set Extensao=*.log

:: Informe a Pasta Local onde deseja salvar seus arquivos remotos:
set PastaL=Local

IF /i not Exist "%PastaL%" md "%PastaL%"

"%Winscp%" /command "open ""ftp://%Usuario%:%Senha%@%Servidor%""" "get ""%PastaR%/*"" -filemask=%Extencao%|*\ ""%PastaL%\""" "exit"

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@ricardo_br Opa, bom dia!
 Eu copiei e alterei os caminhos, desse jeito: 

 

@echo off

:: Informe aqui o caminho para o WinScp:
set "Winscp=%programfiles(x86)%\WinSCP\WinSCP.exe"

:: Informe seu Servidor FTP
set Servidor=192.168.56.1

:: Informe o nome do usuario do seu FTP:
set Usuario=anderson

:: Informe a senha do seu FTP:
set Senha=1234

:: Informe a Pasta remota:
set PastaR=/

:: Informe a extensão dos arquivos que quer:
set Extensao=*.log

:: Informe a Pasta Local onde deseja salvar seus arquivos remotos:
set PastaL=Local

IF /i not Exist "%PastaL%" md "%PastaL%"

"%Winscp%" /command "open ""ftp://%Usuario%:%Senha%@%Servidor%""" "get ""%PastaR%/*"" -filemask=%Extencao%|*\ ""%PastaL%\""" "exit"


Tenho um servidor local para teste mas ao executar o bat ele não abre, como se executasse e milissegundos depois fecha... 
Mas o resultado seria pra isso mesmo, exatamente como o seu vídeo mostra.

Link para o comentário
Compartilhar em outros sites

Sabe informar qual é porta usada? em servidor tente 192.168.56.1:21 ou a porta que você configurou no seu servidor FTP. Em caminho para WinSCP troque winscp.exe por winscp.com

 

Se o seu servidor for SSH troque ftp por sftp em ""open ""ftp:

 

Ao final do batch coloque um pause ai vai poder ver possíveis erros reportados:

 

"%Winscp%" /command "open ""ftp://%Usuario%:%Senha%@%Servidor%""" "get ""%PastaR%/*"" -filemask=%Extensao%|*\ ""%PastaL%\""" "exit"
pause

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@ricardo_br Criei uma conta na drivehq como você mostra ali e funcionou, 100%... 
agora tenho que ver como vou fazer a respeito da conexão que tenho com o winscp, talvez pegando o acesso de login e senha com eles resolva pois só tenho o arquivo de key pra acesso que ja vem configurado.
Mas de qualquer forma, muito obrigado pela ajuda Ricardo, continuarei aqui na luta rs

Link para o comentário
Compartilhar em outros sites

  • Solução

@AndCavichioli Para conectar com esse arquivo "key'" você deve mudar o comando:

 

%Winscp%" /command "open ""sftp://%Usuario%@%Servidor%"" -privatekey=""{CaminhoParaArquivoKey}""" "get ""%PastaR%/*"" -filemask=%Extensao%|*\ ""%PastaL%\""" "exit

 

Onde você deverá substituir {CaminhoParaArquivoKey} pelo caminho do arquivo key que você tem...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
  • 2 meses depois...

@ricardo_br

Boa tarde 

 

"%Winscp%" /command "open ""ftp://%Usuario%:%Senha%@%Servidor%""" "get ""%PastaR%/*"" -filemask=%Extensao%|*\ ""%PastaL%\""" "exit"

 

esse comando acima me ajudou muito, mas eu tenho cerca de 8 arquivos no meu servidor e queria copiar somente o mais recente, por ex: 13/07/2022, teria como?

Obrigado

 

PS: Resolvi, foi fácil.
somente adicionei -latest entre as aspas e -filemask, ficando assim: 

 

"%Winscp%" /command "open ""ftp://%Usuario%:%Senha%@%Servidor%""" "get ""%PastaR%/*"" -latest -filemask=%Extensao%|*\ ""%PastaL%\""" "exit"

 

o comando somente copia o arquivo com data mais recente.
caso alguém tenha essa duvida.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • mês depois...

Boa tarde, tudo bem?

Script esta me ajudando bastante, obrigado pela disponibilização.

 

Estou precisando de uma alteração nele, alguém saberia me ajudar? Estou precisando que copie tudo do local, pasta e arquivos, porém só consigo copiar arquivos, pasta não.

 

Desde já, Obrigado.

Link para o comentário
Compartilhar em outros sites

 

@AndCavichioli @bagassera Sabe como fazer o script ao contrario? fazendo upload de uma pasta local pra pasta remota? Estou precisando muito também.

 

Coloquei dessa forma abaixo; mas retorna nenhuma correspondencia de ficheiro, ao contrario funcionou perfeitamente.

 

@echo off

:: Informe aqui o caminho para o WinScp:
set "Winscp=%programfiles(x86)%\WinSCP\winscp.com"

:: Informe seu Servidor SFT
set Servidor=

:: Informe o nome do usuario do seu SFT
set Usuario=

:: Informe a senha do seu SFT
set Senha=

:: Informe a Pasta Local:
set PastaL=C:\ServComNET\Saida

:: Informe a extensão dos arquivos que quer:
set Extencao=*.txt

:: Informe a Pasta Remota
set PastaR=/opt/ponto/3109/upload

IF /i not Exist "%PastaL%" md "%PastaL%"

"%Winscp%" /command "open ""sftp://%Usuario%:%Senha%@%Servidor%""" "get ""%PastaL%\*"" -filemask=*.* ""%PastaR%/""" "exit"

pause

Link para o comentário
Compartilhar em outros sites

@Alef-PC Sim, basicamente basta trocar get por put, tente assim:

 

@echo off

:: Informe aqui o caminho para o WinScp:
set "Winscp=%programfiles(x86)%\WinSCP\winscp.com"

:: Informe seu Servidor SFT
set Servidor=

:: Informe o nome do usuario do seu SFT
set Usuario=

:: Informe a senha do seu SFT
set Senha=

:: Informe a Pasta Local:
set PastaL=C:\ServComNET\Saida

:: Informe a extensão dos arquivos que quer:
set Extencao=*.txt

:: Informe a Pasta Remota
set PastaR=/opt/ponto/3109/upload

IF /i not Exist "%PastaL%" md "%PastaL%"

"%Winscp%" /command "open ""sftp://%Usuario%:%Senha%@%Servidor%""" "put *.* ""%PastaL%\"" -filemask=*.* ""%PastaR%""" "exit"

pause

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 3 semanas depois...

Boa tarde, como o amigo acima respondeu  eu queria fazer o comando inverso, de copiar do local para o servidor! Vou te encaminhar como está o Script e como o erro aparece, gostaria de ajuda dos colegas para sanar tal duvida !

image.png.0c9ac338fd5f3dfb0675e601db55fc61.png

Imagem de Erro!
 

Citação

@echo off

set "Winscp=%programfiles(x86)%\WinSCP\winscp.com"
set Servidor=web11.senior.com.br:27
set Usuario=granja
set Senha=***********
set PastaL=C:\Users\Fernando\Desktop\RHSENIOR
set Extensao=*.txt
set PastaR=/Ponto/Teste
IF /i not Exist "%PastaL%" md "%Pasta%"
"%Winscp%" /command "open ""ftp://%Usuario%:%Senha%@%Servidor%""" "put ""%PastaL%/*"" -filemask=%Extensao%|*\  ""%PastaR%\""" "exit"

Esse e o Script q estou usando, queria adicionar tmb para copiar somente os arquivos do dia?

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!