8

Я пытаюсь заставить мою систему непрерывной интеграции работать от начала до конца в среде разработчика.

К сожалению, последний шаг после публикации - копирование папки на внешний сервер, доступ к которому я могу получить только через FTP.

Мне бы хотелось, чтобы работала служба, которая следит за локальной папкой, и, если она меняется, обновляет FTP-сервер с этими изменениями.

Я не могу найти что-то для этого в Windows.

3 ответа3

14

Существует бесплатный FTP-клиент WinSCP с открытым исходным кодом, который имеет все возможности для этого.

Команда, которую вы ищете, находится в меню "Команды" и называется "Обновлять удаленный каталог".

Держите удаленный каталог в актуальном состоянии


Также доступна поддержка сценариев с помощью команды keepuptodate.

5

Попробуйте бесплатную версию SyncBack. Он не выполняет мониторинг папок в реальном времени, но вы можете запланировать его синхронизацию через определенные промежутки времени. Установите это к чему-то низкому как 1 минута.

2

Бесплатное и открытое решение на основе git:

Используйте git-ftp для синхронизации. После установки и настройки локального репозитория git вы можете сделать:

  • git ftp init -u <пользователь> -P f tp://host.example.com/public_html # для первого нажатия
  • git ftp push --user <пользователь> --passwd <пароль> f tp://host.example.com/public_html

Теперь вам просто нужно следить за изменениями файловой системы, добавлять их в локальный репозиторий git и отправлять репозиторий с помощью приведенной выше команды.

Преимущества:

  • git-ftp работает на windows и linux (протестировано с mysys git на windows)
  • хорошо интегрируется в ваши настройки разработки, если вы уже используете git
  • очень прост в настройке и использовании (если вы знакомы с git)
  • постепенные изменения -> экономит большую пропускную способность

Недостатки:

  • вам нужно найти решение, чтобы следить за изменениями файловой системы (это не должно быть слишком сложно, например, для nodejs есть решения для этого)

Вот пример для командного файла, который я использую в Windows:

@echo off
git init .
git add . --all
git commit -am "auto commit"
set /p pwd= Please enter ftp password: 
git ftp push --user myftpuser --passwd %pwd% ftp://myftphost.com/myfolder

Обратите внимание, что это интерактивный пример, но вы можете сделать его неинтерактивным, сохранив пароль в командном файле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .