segunda-feira, 14 de janeiro de 2013

FTP VIA ARQUIVO BAT

Uma grande dificuldade é quando precisamos criar uma rotina automática que envie um arquivo para um repositório FTP. Descrevo abaixo a forma que fiz isso, através de um arquivo BAT, onde o arquivo a ser enviado é automaticamente compactado e enviado ao servidor FTP.

1 - Devemos criar um arquivo .LST que conterá as informações de quais diretórios estarão os arquivos a serem compactados antes do envio para o FTP. Basta abrir um bloco de notas e digitar o caminho conforme abaixo:


Arquivo "LISTA.LST"
E:\BACKUP\*.docx
E:\BACKUP\*.xlsx

Ou seja, será compactado todos os arquivos .DOCX e .XLSX do diretório E:\BACKUP

2 - Criar um arquivo .TXT com os dados de login do servidor FTP, e diretório que o arquivo será enviado no servidor, conforme abaixo, onde são passados o Usuario e Senha para acesso, o Diretorio dentro do servidor FTP, o modo de conexão e por fim o Disconnect para encerrar a conexão.

Arquivo FTP.TXT

user usuario_ftp senha_ftp
cd Diretorio
binary
prompt
put *.RAR
disconnect
bye
!


3 - Por último vamos criar o arquivo .BAT que irá fazer a compactação e enviar o arquivo para o servidor FTP utilizando os dados dos 2 arquivos criados anteriormente.

Arquivo COMPACTACAO_UPLOAD.BAT


ECHO |TIME /T > MENSAGEM.TXT
ECHO INICIANDO COMPACTACAO >> MENSAGEM.TXT

"C:\Program Files\WinRAR\RAR" a -agddmmyyyy_hhmm -r Backup.RAR @LISTA.LST"

ECHO |TIME /T >> MENSAGEM.TXT
ECHO FIM DA COMPACTACAO >> MENSAGEM.TXT

ECHO |TIME /T >> MENSAGEM.TXT
ECHO INICIANDO UPLOAD

ftp -s:ftp.txt -n ftp.empresa.com.br

ECHO |TIME /T >> MENSAGEM.TXT
ECHO FIM DO UPLOAD DO ARQUIVO DE BACKUP

Explicando o arquivo .BAT:
Nas 2 primeiras linhas, ele cria um arquivo no mesmo diretório que está o arquivo .BAT chamado "MENSAGEM.TXT" apenas como um Log da compactação dos arquivos;
Na 3ª linha, ele irá chamar via DOS o Winrar para compactar os dados do arquivo "LISTA.LST, criando um arquivo "Backup_DiaMesAno_HoraMinutos.RAR";
Na 4 e 5ª linha ele grava no arquivo de LOG o fim da compactação;
Nas 2 linhas seguintes ele grava no LOG o inicio do UPLOAD do arquivo para o servidor FTP;
Aa 8ª linha é o comando FTP, que lê o arquivo FTP.TXT com os dados de conexão do host "ftp.empresa.com.br" que é o endereço do FTP (também poderia ser o IP);
As duas ultimas linhas grava no LOG o final do Envio dos arquivos para o servidor FTP.

Agora basta agendar esse arquivo .BAT no Agendador de Tarefas do Windows para que tudo funcione. Obs: Todos esses arquivos utilizados (Lista.lst, Ftp.txt e Compactacao_Upload.bat) devem estar no mesmo diretório.

4 comentários :

  1. Obrigado pela postagem, excelente artigo, exatamente o que precisava saber.

    ResponderExcluir
  2. ola bom dia!

    esse comando preciso alterar tbm?

    "C:\Program Files\WinRAR\RAR" a -agddmmyyyy_hhmm -r Backup.RAR @LISTA.LST"

    ResponderExcluir
  3. Parabéns pelo artigo, muito bem explicado.

    ResponderExcluir