Windows/Azure
Estoy buscando una aplicación (u otra solución) que realice dinámicamente una sincronización bidireccional entre un sitio SFTP externo y el almacenamiento local.
Específicamente (pensando de manera orientada al servidor), hay una carpeta de importación y una carpeta de exportación.
Entonces, si hay un cambio del lado del servidor en un archivo en la carpeta de exportación (incluido nuevo/eliminar), el lado del cliente lo reflejará (dentro de un intervalo).
Y de manera similar, si hay un cambio del lado del cliente en un archivo en la carpeta de importación, el lado del servidor lo reflejará.
Supongo que podría ser necesario que esta aplicación exista tanto en el cliente como en el servidor. Quizás sea un tipo especial de servidor SFTP.
El caso de uso específico es para archivos con nombre de marca de tiempo que se archivan diariamente (copiados a una subcarpeta de archivo con nombre de marca de tiempo y luego eliminados de la carpeta principal).
Especialmente interesado en soluciones en la nube, como por ejemplo Azure.
Descubrí que todavía existen muchos servidores DC SFTP tradicionales y los proveedores no ofrecen mucha flexibilidad (por ejemplo, utilizan un producto SFTP específico y no cambian). Por lo tanto, lo más óptimo sería una aplicación/solución que coexistiera con un servidor SFTP heredado existente.
Respuesta1
Ftp Voyager hará esto. (Asumiendo ventanas, no dijiste) https://thwack.solarwinds.com/resources/b/geek-speak/posts/ftp-voyager-debuts-as-solarwinds-free-tool
Se instalará como un servicio y tiene un programador para crear perfiles de conexión a sitios y luego programarlos para extraer datos en momentos/intervalos.
Tampoco es difícil crear scripts para el cliente nativo SFTP, o incluso PSFTP (parte del proyecto PuTTY), una sintaxis muy similar si está familiarizado con los comandos ftp.https://www.puttygen.com/psftp
Específicamente el modificador -B, con el que básicamente puedes procesar un script de comandos para hacer lo mismo que si estuvieras en la terminal, y luego convertirlo en una tarea en el programador de tareas.
-B – It specifies a file with batch commands. The ‘-b’ command helps user automate tasks by allowing them to set commands in advance.
Sincronizar SFTP de esta manera en cualquier caso no requiere que el lado del servidor sea consciente de que lo está automatizando, y mucho menos instale nada. Simplemente hace lo mismo que haría un usuario mediante código. https://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html
Ejemplo de uso de psftp: cree un archivo de texto simple llamado ddall.txt
Suponiendo que hay una carpeta en la cola llamada iQ y un directorio en el otro lado llamado out, el siguiente script...
lcd - Cambiar el directorio local a iQ
cd out: cambia al directorio out en el lado remoto
mget * - obtención de múltiples archivos, descarga lo que hay allí.
salir - sale
lcd .\iQ
cd out
mget *
quit
y luego pasarlo a PSFTP así
psftp user@host -P [port number] -b dlall.txt
Ahora bien, esto supone que sabe cómo realizar la autenticación, ambos aceptarán credenciales en la línea de comando o puede configurar la autenticación con clave pública. No sugiero contraseña, porque para automatizarla tienes que almacenar una contraseña en algún lugar en texto plano. FtpVoyager almacenará contraseñas pero al menos las cifrará. Sin embargo, ambos funcionarán con pubkey de forma mucho más segura.
Tenga en cuenta también que utilizó la palabra "sincronización" si desea asegurarse de que ambos lados sean realmente iguales, esto es más difícil y probablemente lo llevará de regreso a FTPVoyager.
O posiblemente busque rsync sobre ssh si el servidor lo admite.