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¶
- Crie um diretório novo diretório em seu servidor Web e adicione dois arquivos a ele —
winscp.log
e{{SomeName}}Export.txt
-
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: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
-delete
no 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. -
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:
-
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 ewinscp.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
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