Двухсторонняя синхронизация в WinSCP

359
user308485

Я нахожусь в сеансе SSH с удаленной машиной, использующей WinSCP. Я хотел бы, чтобы WinSCP отслеживал файл на моей локальной машине, вызывал его test.cpp. То есть всякий раз, когда этот файл обновляется на моем локальном компьютере, изменения должны автоматически вноситься на удаленном компьютере.

В то же время я хотел бы, чтобы WinSCP отслеживал файл на пульте, вызывал его out.txt, чтобы изменения в этом файле на пульте отражались на моей собственной машине.

Как я могу достичь обоих из них одновременно? Я хочу, чтобы первый файл отслеживался в одном направлении, а другой - в другом, но ни один файл не должен отслеживаться в обоих направлениях.

2
WinSCP - неподходящий инструмент для этой работы. Если вы используете UNIX / Linux и вам не нужна буквальная немедленная синхронизация (например, синхронизация по расписанию в порядке), посмотрите `rsync`. LawrenceC 5 лет назад 0
На самом деле я ищу немедленной синхронизации. Кроме того, мой локальный компьютер - Windows (удаленный Ubuntu). user308485 5 лет назад 0
Существует rsync для Windows (многие утилиты UNIX / Linux имеют версии для Windows) - легко найти с помощью поиска. Если вам нужна немедленная синхронизация без повторного опроса, вам, вероятно, понадобится специализированный инструмент (не могу вспомнить ни одного, предназначенного только для этого использования), или настройте сервер Samba на стороне Ubuntu и используйте Windows для доступа к общему ресурсу Samba. LawrenceC 5 лет назад 0

1 ответ на вопрос

0
Martin Prikryl

Просто создайте пакетный файл, который запускается в цикле, работает put -neweronlyдля test.cppи get -neweronlyдля out:

@echo off :loop winscp.com /ini=nul /command ^ "open sftp://username:password@example.com/ -hostkey=""ssh-rsa 2048 ...""" ^ "put -neweronly C:\local\path\test.cpp /remote/path/*" ^ "get -neweronly /remote/path/out C:\local\path\*" ^ "exit" timeout /t 30 goto loop 

( WinSCP GUI может сгенерировать шаблон пакетного файла для вас)


Если вы хотите сохранить соединение открытым (не переподключать для каждой итерации), лучше использовать сборку WinSCP .NET из сценария PowerShell .

См. « Обновление локального каталога» (например, загрузка измененных файлов с удаленного SFTP / FTP-сервера) .