Procurando um aplicativo para sincronizar SFTP com local

Procurando um aplicativo para sincronizar SFTP com local

Windows Azure

Estou procurando um aplicativo (ou outra solução) que execute dinamicamente uma sincronização bidirecional entre um site SFTP externo e o armazenamento local.

Especificamente, (pensando de maneira orientada ao servidor), há uma pasta de importação e uma pasta de exportação.

Portanto, se houver uma alteração no lado do servidor em um arquivo na pasta de exportação (incluindo new/delete), o lado do cliente refletirá isso (dentro de algum intervalo).

E de maneira semelhante, se houver uma alteração no lado do cliente em um arquivo na pasta de importação, o lado do servidor refletirá isso.

Suponho que seja necessário que este aplicativo exista tanto no cliente quanto no servidor. Talvez seja um tipo especial de servidor SFTP.

O caso de uso específico é para arquivos com nome de carimbo de data e hora que são arquivados diariamente (copiados para uma subpasta de arquivo com nome de carimbo de data e hora e, em seguida, excluídos da pasta principal).

Especialmente interessado em soluções em nuvem, como Azure.

Estou descobrindo que muitos servidores DC SFTP tradicionais ainda existem e os provedores não oferecem muita flexibilidade (por exemplo, eles usam um produto SFTP específico e não mudam). Portanto, o ideal seria um aplicativo/solução que coexistisse com um servidor SFTP legado existente.

Responder1

O FTP Voyager fará isso. (Assumindo janelas, você não disse) https://thwack.solarwinds.com/resources/b/geek-speak/posts/ftp-voyager-debuts-as-solarwinds-free-tool

Ele será instalado como um serviço e possui um agendador para criar perfis de conexão com sites e depois agendá-los para obter dados em horários/intervalos.

Também não é difícil criar scripts de cliente nativo de SFTPs, ou mesmo PSFTP (parte do projeto putty), sintaxe muito semelhante se você estiver familiarizado com comandos ftp.https://www.puttygen.com/psftp

Especificamente a opção -B, com a qual você pode basicamente processar um script de comandos para fazer exatamente como você estava no terminal e, em seguida, tornar isso uma tarefa no agendador de tarefas

-B – It specifies a file with batch commands. The ‘-b’ command helps user automate tasks by allowing them to set commands in advance.

Sincronizar o SFTP dessa maneira, em ambos os casos, não exige que o lado do servidor esteja ciente de que você o está automatizando, muito menos instale qualquer coisa. Ele simplesmente faz a mesma coisa que um usuário faria por meio de código. https://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html

Exemplo usando psftp: crie um arquivo de texto simples chamado dlall.txt

supondo que haja uma pasta na fila chamada iQ e um diretório no outro lado nomeado, o script a seguir ...

lcd - Muda o diretório local para iQ

cd out - muda para o diretório out no lado remoto

mget * - obtém vários arquivos, baixa o que está lá.

sair - sai

lcd .\iQ
cd out
mget *
quit

e depois passe para PSFTP assim

psftp user@host -P [port number] -b dlall.txt

Agora, isso pressupõe que você saiba como fazer autenticação, ambos aceitarão credenciais na linha de comando ou você poderá configurar a autenticação pubkey. Não sugiro senha, pois para automatizá-la é necessário armazenar uma senha em algum lugar em texto simples. O FtpVoyager armazenará senhas, mas pelo menos as criptografará. Ambos funcionarão com o pubkey de forma muito mais segura.

Observe também que você usou a palavra "sincronizar" se quiser ter certeza de que ambos os lados são realmente iguais, isso é mais difícil e provavelmente o levaria de volta ao FTPVoyager

https://support.solarwinds.com/SuccessCenter/s/article/How-Can-FTP-Voyager-Automaticamente-Synchronize-Folders-on-2-Different-Sites?language=en_US

OU possivelmente procure rsync sobre ssh se o servidor suportar isso.

informação relacionada