2

Моя текущая работа включает в себя работу над сценариями, работающими на Ubuntu VM.

По нескольким причинам я редактирую и фиксирую файлы проекта на локальном компьютере под управлением Windows и запускаю их на удаленном сервере через соединение SSH (используя MobaXTerm). Мой процесс сборки при разработке примерно такой:

  • Напишите изменения в моем локальном текстовом редакторе.

  • Откройте правильный каталог в пользовательском интерфейсе SFTP MobaXTerm.

  • Нажмите "Загрузить файл" и выберите нужный каталог и файл в браузере файлов Windows.

  • Запустите systemctl restart apache2.service или все, что мне нужно на ВМ.

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

Шаги 2 и 3 кажутся излишними. Они повторяются, их легко забыть, их легко ошибиться, и я обычно даю компьютеру информацию, которая должна знать лучше меня.

Существует ли стандартизированный безопасный способ автоматической синхронизации локальной папки с удаленной папкой SSH из Windows?

По сути, мне нужна какая-то утилита. Файл myDirectory/foo/bar/X изменился!Загрузка файла X в someUrl/theirDirectory/foo/bar/X с минимальной настройкой.

1 ответ1

3

Там нет "стандартизированного пути".

У вас есть эти варианты:

  • Используйте инструмент, который может отслеживать изменения в локальном каталоге и отражать их в удаленном каталоге SFTP.
  • Запланируйте частую синхронизацию локальной папки с удаленной папкой.
  • Существуют (коммерческие) инструменты, которые могут сопоставить удаленную папку SFTP с локальным диском. Используя их, вы можете напрямую работать с / редактировать удаленные файлы, используя любое локальное приложение.
  • Некоторые редакторы позволяют прямое редактирование файлов на SFTP-сервере.

Вы можете реализовать первые два варианта с WinSCP SFTP клиентом.


Наблюдая за изменениями

Используйте функцию WinSCP "Поддерживайте актуальность удаленного каталога" .

Его можно использовать как в режиме командной строки / консоли, используя команду keepuptodate, например:

winscp.com /ini=nul /log=c:\writable\path\to\synchronize.log /command ^
    "open sftp://username:password@example.com/" ^
    "keepuptodate C:\local\path /remote/path" ^
    "exit"

Или в графическом / графическом режиме. Вы можете запустить графический режим в WinSCP GUI (после входа в систему) или из командной строки, используя параметр /keepuptodate например:

winscp.exe sftp://username:password@example.com/ /keepuptodate C:\local\path /remote/path

планирование

Чтобы синхронизировать изменения в локальном каталоге с удаленным каталогом, используйте команду сценария synchronize WinSCP из командного файла, например:

winscp.com /ini=nul /log=c:\writable\path\to\synchronize.log /command ^
    "open sftp://username:password@example.com/" ^
    "synchronize remote C:\local\path /remote/path" ^
    "exit"

И запланируйте запуск командного файла с помощью планировщика Windows.

Подробнее см. Также руководство по автоматизации передачи файлов (или синхронизации) на SFTP-сервер.


(Я автор WinSCP)

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