2

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

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

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

1 ответ1

0

Просто создайте пакетный файл, который запускается в цикле, запустив 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-сервера) .

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