Mais uma vez, foi típico. Um amigo estava a ver na Wiki do JTL e viu um script para descarregar um ficheiro do servidor Web via FTP para o computador local. Só que o script não parece fazer o que o utilizador espera. Logo a seguir, o post na comunidade de utilizadores do JTL com a dica amigável de que posso certamente resolver o problema. Onde é que as pessoas vão buscar essa ideia? Muito bem, aqui vai a solução.

Existem várias soluções para a transferência automática via FTP. Por um lado, podemos escrever um script com o WinSCP, o que não é uma má ideia. A segunda abordagem baseia-se no JTL-Wawi Wiki, um ficheiro batch que executa um script FTP. Desde que só façamos a transferência num cliente Windows, o ficheiro batch é suficiente. A situação é um pouco diferente se quisermos executar a transferência directamente num servidor Windows 2012 R2 ou Windows 2016. Ocorre aqui um erro apesar de uma firewall aberta. É por isso que utilizamos a ferramenta WinSCP, que depois iniciamos através do agendamento de tarefas.

Em primeiro lugar, precisamos de um directório no nosso servidor ou PC Windows, onde colocamos os ficheiros batch necessários e que servirá de alvo para a nossa transferência. Para o fazer, criamos uma pasta algures, de preferência na raiz de uma partição, por exemplo, C:Download. Nesta pasta, criamos dois ficheiros com o editor. Um com o nome significativo download.bat e o outro chamamos ftpdownload.ftp. Em qualquer caso, devemos certificar-nos antecipadamente de que as extensões dos nomes dos ficheiros são apresentadas! O conjunto fica então parecido com as três imagens de ecrã seguintes.

Depois de criarmos os ficheiros, podemos começar a “scripting”. Primeiro, criamos o script para o download por FTP e abrimos o ficheiro ftpdownload.ftp no editor.

Para criar o nosso script de transferência, precisamos agora das seguintes informações:

  1. O domínio em que os dados estão localizados, por exemplo, mydomain.com
  2. O nome do utilizador FTP, por exemplo, webmaster
  3. A palavra-passe secreta do utilizador FTP, por exemplo, P@ssw0rd
  4. O caminho para o ficheiro no espaço Web, por exemplo, httpdocs/download
  5. O nome do ficheiro que queremos descarregar, por exemplo, test.txt

A partir desta informação, criamos o seguinte guião:

open meinedomain.de
webmaster
P@ssw0rd
bin
lcd C:download
cd /httpdocs/download
get test.txt
bye

No guião, basta agora substituir os meus dados de amostra pelos seus.

Agora editamos o download.bat, com o qual chamamos o ftpdownload.ftp e iniciamos o download propriamente dito. Aqui entramos no seguinte e belo 4-liner:

@echo off
echo --- starte FTP-Transfer….
ftp -s:ftpdownload.ftp
echo ---fertig.

Para efeitos de teste, é aconselhável acrescentar o comando Pause no final, como se pode ver na captura de ecrã. Se mais tarde pretender executar o ficheiro automaticamente através do agendador de tarefas do Windows, deve remover novamente esta linha.

Delta Whiskey, era isso. Agora podemos iniciar o nosso download.bat pela primeira vez com um corajoso duplo clique.

Quando testo o script num servidor Windows, recebo a mensagem de erro “425 Unable to build data connection: Connection timed out” após dois minutos. Mas que raio é isto? Mesmo abrindo as portas na firewall, o meu servidor de testes não conseguiu descarregar o ficheiro de teste do meu servidor Web através de FTP. Acontece merda!

Restam apenas duas alternativas. Um script PowerShell ou a utilização do WinSCP. Escolhi a segunda opção, uma vez que os utilizadores não profissionais também devem ser capazes de lidar com esta ferramenta. Pode descarregar o WinSCP aqui: https://winscp.net/eng/download.php#download2

A instalação do WinSCP é auto-explicativa e penso que não preciso de a explicar mais. Depois do início, temos de nos ligar ao nosso servidor FTP.

De seguida, clicamos no item de menu Session e, em seguida, em Create Session URL/Code….

No separador URL, activamos as opções Nome de utilizador, Palavra-passe e, em seguida, passamos para o separador Script.

Aqui, clicamos no botão “Copiar para a área de transferência” e, em seguida, abrimos o Editor do Windows.

Colamos o texto da área de transferência no novo ficheiro de texto e eliminamos as linhas “# O seu comando 1” e “# O seu comando 2”. Para isso, a linha get /[Pfad zur Datei]/[Dateiname] [lokales Zielverzeichnis][lokaler Dateiname] sobre. O conjunto deve então ter o seguinte aspecto get /httpdocs/test.txt C:Downloadtest.txt

Guardamos o ficheiro como ftpdownload.txt no directório Download e chamamo-lo através da linha de comandos. Para o fazer, mudamos para o directório de instalação do WinSCP C:Program Files (x86)WinSCP e introduzimos este comando winscp /script=”C:Downloadftpdownload.txt”.

Tudo isto pode agora ser incorporado numa simples tarefa na Gestão Informática do Agendamento de Tarefas e depois o ficheiro é descarregado do servidor uma vez por dia. Só tenho de me certificar de que selecciono WinSCP.exe em Programa/Script e introduzo /script=”C:Downloadftpdownload.txt” em Adicionar argumentos. A transferência automática por FTP está pronta.

  • 0/5
  • 0 ratings
0 ratingsX
Very bad! Bad Hmmm Oke Good!
0% 0% 0% 0% 0%

Haben Sie Fragen oder brauchen ein individuelles Angebot? Zögern Sie nicht, uns zu kontaktieren.


    O eBakery necessita das informações de contacto que nos fornece para o contactar sobre os nossos produtos e serviços. Pode anular a subscrição destas notificações em qualquer altura. Para obter informações sobre o cancelamento da subscrição, bem como sobre as nossas práticas de privacidade e o nosso empenho em proteger a sua privacidade, consulte a nossa Política de Privacidade.*.

    Related Posts

    Leave a Comment

    Hat dir der Artikel gefallen?

    Dann melde dich doch zu unserem Newsletter an!

    Neben unseren Blog Themen informieren wir dich darin regelmäßig zu neuen Features und Tutorials