Ищу приложение для синхронизации SFTP с локальным

Ищу приложение для синхронизации SFTP с локальным

Windows/Лазурь

Я ищу приложение (или другое решение), которое динамически выполняло бы двунаправленную синхронизацию между внешним сайтом SFTP и локальным хранилищем.

В частности (если рассуждать с точки зрения сервера), есть папка импорта и папка экспорта.

Таким образом, если на стороне сервера произошло изменение файла в папке экспорта (включая создание/удаление), это отразится на стороне клиента (в течение некоторого интервала).

Аналогичным образом, если на стороне клиента произойдет изменение файла в папке импорта, это отразится на стороне сервера.

Я полагаю, что это приложение должно существовать как на клиенте, так и на сервере. Возможно, это особый тип SFTP-сервера.

Конкретный вариант использования — файлы с временными метками, которые архивируются ежедневно (копируются в подпапку архива с временными метками, а затем удаляются из основной папки).

Особенно интересны облачные решения, такие как Azure.

Я обнаружил, что многие традиционные DC SFTP-серверы все еще существуют, а поставщики не предлагают особой гибкости (например, они используют определенный продукт SFTP и не собираются его менять). Поэтому наиболее оптимальным было бы приложение/решение, которое сосуществовало бы с существующим устаревшим SFTP-сервером.

решение1

Ftp Voyager сделает это. (Предполагая, что Windows, вы не сказали) https://thwack.solarwinds.com/resources/b/geek-speak/posts/ftp-voyager-debuts-as-solarwinds-free-tool

Он устанавливается как служба и имеет планировщик для создания профилей подключения к сайтам, а затем планирования загрузки данных в определенное время/с определенными интервалами.

Несложно написать скрипт для собственного клиента SFTP или даже PSFTP (часть проекта putty), синтаксис очень похож, если вы знакомы с командами ftp.https://www.puttygen.com/psftp

В частности, ключ -B, с помощью которого вы можете по сути обработать скрипт команд, чтобы сделать то же самое, что вы делаете в терминале, а затем сделать это задачей в планировщике задач.

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

Синхронизация SFTP таким способом в любом случае не требует от сервера даже знать, что вы ее автоматизируете, не говоря уже о том, чтобы что-либо устанавливать. Она просто делает то же самое, что сделал бы пользователь с помощью кода. https://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html

Пример использования psftp: создайте простой текстовый файл с именем dllall.txt

предположим, что в очереди есть папка с именем iQ, а на другой стороне есть каталог с именем out, следующий скрипт...

lcd - Изменить локальный каталог на iQ

cd out - переходит в каталог out на удаленной стороне

mget * - получение нескольких файлов, скачивает то, что есть.

выйти - выходы

lcd .\iQ
cd out
mget *
quit

и затем передать его в PSFTP следующим образом

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

Теперь это предполагает, что вы знаете, как сделать аутентификацию, оба будут принимать учетные данные в командной строке или вы можете настроить аутентификацию по открытому ключу. Я не предлагаю пароль, потому что для автоматизации вам придется хранить пароль где-то в открытом тексте. FtpVoyager будет хранить пароли, но, по крайней мере, шифровать их. Хотя оба будут работать с открытым ключом гораздо безопаснее.

Обратите внимание, что вы использовали слово «синхронизация», если вы хотите убедиться, что обе стороны действительно равны, это сложнее и, скорее всего, вернет вас к FTPVoyager.

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

ИЛИ, возможно, рассмотрите rsync через ssh, если сервер это поддерживает.

Связанный контент