Ir para o conteúdo

Criação e Configuração de Scripts Winscp para Transferir Arquivos do Sistema de Arquivos para SFTP

Este guia mostrará como criar e configurar scripts WINSCP para transferir arquivos de um Sistema de Arquivos para SFTP. O tempo esperado para esta configuração deve levar cerca de 10-15 minutos. Para o contexto, esta abordagem está sendo usada para um cliente gerando arquivos .xlsx de App Builder que uma empresa terceirizada usa para determinar o acesso dos funcionários aos relatórios no sistema do cliente. Então, essas informações são geradas a partir de App Builder primeiro, e depois transferido para o servidor de terceiros seguindo o processo descrito neste guia.

Como Configurar

  1. Crie um diretório novo diretório no seu Servidor Web e adicione dois arquivos a ele — winscp.log e {{algumNome}} export.txt
  2. No {{AlgumNome}} export.txt arquivo, adicione o seguinte código para estar em linha com sua configuração:

    open sftp://{{nomedeusuário}}:{{senha}}@{{nomedohost}} -hostkey="ssh-rsa 2048 {{chave do host}}"
    cd /path/to/directory/on/sftp
    put -nopermissions -nopreservetime -delete C:\{{CaminhoLocalParaArquivo}}\*
    exit
    

    No exemplo do bloco de código, onde se lê sftp://{{nomedeusuário}}:{{senha}}@{{nomedohost}}, {{nomedeusuário}}, {{senha}}, e {{nomedohost}} deve ser substituído pelas credenciais de login e nome do host do SFTP, e o -hostkey refere-se à impressão digital da chave do host do servidor que pode ser encontrada em WinSCP > Session > Server and protocol information > Server hospedar key fingerprint. Veja a captura de tela:

    Imagem 1

    cd /path/to/directory/on/sftprefere-se ao diretório raiz na pasta SFTP de destino para onde os arquivos devem ser movidos.

    put -nopermissions -nopreservetime -delete C:\{{CaminhoLocalParaArquivo}}\*refere-se à localização do arquivo no servidor de origem ({{nm.ab}} servidor) que o arquivo existe, enquanto o * é um curinga que informa ao script para pegar todos os arquivos dentro desse diretório.

    Deve-se notar também que o-deleteno script irá deletar seu arquivo assim que ele for movido (ou tentar movê-lo). Este sinalizador pode ser removido se você quiser manter o arquivo em seu diretório de origem.

  3. Abra o Windows Task Scheduler no servidor web e crie uma nova tarefa de acordo com suas especificações. Nesta configuração específica, o agendamento é configurado para ser executado a cada 5 minutos, o que é realizado com a opção 'Repetir tarefa a cada 5 minutos por uma duração de 1 dia', em um agendamento diário:

    Imagem 2

  4. Clique duas vezes na tarefa que você acabou de criar na etapa 3. Na aba Ações, crie uma ação Iniciar um programa:

    • Em Programa/ Script selecione o local do WinSCP.exe
    • Em Adicionar argumentos (opcional) coloque a seguinte string /console /script="{{algumNome}} export.txt" /log="winscp.log" onde {{algumNome}} export.txt é o nome do seu arquivo criado na etapa 1 e winscp.log seu arquivo winscp.log também foi criado na etapa 1.
    • Em Iniciar em (opcional) adicione o "novo diretório" que você criou na etapa 1

    Img 3

Sua tarefa agora deve ser configurada para mover arquivos do diretório especificado para o SFTP! Você pode executar sua tarefa sob demanda do Windows Task Scheduler e verificar o arquivo winscp.log se houver algum erro.

O WinSCP tem uma documentação muito útil se você deseja estender o script ou fazer algo semelhante com o WinSCP: https://winscp.net/eng/docs/scripting