Ir para o conteúdo

Criando e Configurando Scripts WINSCP para Transferir Arquivos do Sistema de Arquivos para SFTP

Este guia orientará você sobre 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 a 15 minutos. Como pano de fundo, essa abordagem está sendo usada para um cliente que gera arquivos .xlsx do Vinyl que uma empresa terceirizada usa para determinar o acesso dos funcionários aos relatórios no sistema do cliente. Portanto, essas informações são geradas primeiro no Vinyl e depois transferidas para o servidor de terceiros seguindo o processo descrito neste guia.

Como Configurar

  1. Crie um diretório novo diretório em seu servidor Web e adicione dois arquivos a ele — winscp.log e {{SomeName}}Export.txt
  2. No {{SomeName}}Export.txt arquivo, adicione o seguinte código para estar alinhado com sua configuração:

    open sftp://{{username}}:{{password}}@{{hostname}} -hostkey="ssh-rsa 2048 {{hostkey}}"
    cd /path/to/directory/on/sftp
    put -nopermissions -nopreservetime -delete C:\{{LocalPathToFile}}\*
    exit
    

    No exemplo do bloco de código, onde se lê sftp://{{username}}:{{password}}@{{hostname}}, {{username}}, {{password}}, e {{hostname}} deve ser substituído pelas credenciais de login SFTP e nome do host, e o -hostkey refere-se à impressão digital da chave do host do servidor que pode ser encontrada em WinSCP > Sessão > Informações do servidor e do protocolo > Impressão digital da chave do hospedar do servidor. Veja a captura de tela:

    Img 1

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

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

    Também deve ser observado que o-deleteno script excluirá 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 Agendador de Tarefas do Windows 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:

    Img 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="{{{SomeName}}Export.txt" /log="winscp.log" onde {{SomeName}}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 estar configurada para mover arquivos do diretório especificado para o SFTP! Você pode executar sua tarefa sob demanda no Agendador de Tarefas do Windows e verificar o arquivo winscp.log se houver algum erro.

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