Как перенести файл с Windows на сервер Linux, обработать его с помощью сценария оболочки и загрузить результаты обратно

Обычно я делаю это с помощью WinSCP: я передаю .tex файл с моей локальной машины Windows на сервер Linux. Я запускаю сценарий (на сервере), чтобы pdflatex файл за меня. И я снова использую WinSCP, чтобы снова скопировать вывод .pdf на локальный компьютер с Windows. Я хотел бы автоматизировать процесс копирования в моем скрипте.

Итак, первый шаг - скопировать file.tex из C:\Doc...\source в ~/Documents. Я думаю, мне нужно использовать команду scp, но сервер видит мою локальную машину как удаленную. Вот почему я не понимаю, как нужно указывать первый каталог:

$scp C:\Doc...\source\file.tex ~/Documents

не работает, потому что сервер не знает, как разговаривать с моей локальной машиной. У меня такая же проблема с командой scp, которую мне нужно использовать для копирования file.pdf обратно на локальный компьютер Windows.

Может ли кто-нибудь помочь мне с этими двумя командами scp?

Заранее спасибо!


person cartonn    schedule 08.01.2013    source источник
comment
Вы можете запустить WINSCP на локальном компьютере в режиме командной строки.   -  person Lee Meador    schedule 08.01.2013
comment
Привет. Если у вас есть необходимые возможности для Linux, вы можете создать общий ресурс Samba и получить к нему доступ как к диску со своего компьютера с Windows. (Например, как диск H :.) Ваш командный файл становится тривиальным.   -  person Greycon    schedule 08.01.2013
comment
@LeeMeador Как я уже сказал, я бы хотел, чтобы это выполнялось сценарием на сервере Linux.   -  person cartonn    schedule 08.01.2013
comment
@Greycon У меня нет сервера, поэтому мне приходится довольствоваться тем стандартным программным обеспечением, которое у них есть   -  person cartonn    schedule 08.01.2013
comment
Затем вам нужно запустить сервер SCP на локальном компьютере, а локальный компьютер будет удален от сервера. Обычно лучше работает наоборот, потому что запускать сервер SCP в Windows затруднительно.   -  person Lee Meador    schedule 08.01.2013
comment
Привет, снова, команда smbclient в значительной степени стандартная для Linux. Идея здесь состоит в том, чтобы использовать Windows для совместного использования папки (с паролем!) С вашего компьютера с Windows, после чего у меня будет имя общего доступа. (В командной строке DOS введите Net share, и вы увидите имя общего ресурса. Затем используйте команду smbclient в Linux для доступа (монтирования) к общему ресурсу. Google smbclient.   -  person Greycon    schedule 08.01.2013


Ответы (1)


Вы можете использовать WinSCP в режиме сценария. Он (естественно) поддерживает загрузку / скачивание. Но он также может выполнять сценарий оболочки на сервере с помощью call команды (с некоторыми ограничениями, которые не имеет значения в вашем простом случае):

winscp.com /log=winscp.log /command ^
    "open scp://username:[email protected]/" ^
    "cd /remote/path" ^
    "put my.tex" ^
    "call pdflatex ..." ^
    "get my.pdf" ^
    "exit"

(я автор WinSCP)

person Martin Prikryl    schedule 05.09.2017