Назад | Перейти на главную страницу

Как я могу запустить скрипт python на машине Windows из Linux, используя ssh в качестве фоновой задачи?

Мне нужно организовать некоторые скриптовые задачи между несколькими машинами Linux и машиной Windows. ssh отлично работает для Linux-машин, подающих в суд ниже:

ssh mysuser@targetLinuxmachine "python '/pathtomyscript/myscript.py' &"

Но тот же метод не работает в качестве фоновой задачи, когда я отправляю команду на компьютер с Windows. На машине с Windows у меня работает ssh-сервер, и само соединение ssh работает. Также был вставлен открытый ключ RSA. Фактически, следующие команды выполняются:

ssh -n -f mysuer@targetwinmachine "python 'C:\Windowspath\myscript.py -someswitch parameter' &"

однако выполнение команды в bash переведет мой терминал на консоль Windows и не позволит мне запустить его как фоновую задачу. Я предполагаю, что «&» не работает в Windows, чтобы запустить команду в качестве фоновой задачи.

Как я могу запустить эквивалентный сценарий на компьютере с Windows в качестве фоновой задачи?

Да, cygwin имеет очень хороший ssh-сервер для windows. Сначала вы должны загрузить и установить это.

После того, как вы сможете войти в свой компьютер с Windows с помощью командной строки ssh, вы можете использовать ssh-keygen чтобы сделать это автоматически и без пароля.

Третье - установить python на ваш компьютер с Windows, который вы можете получить из http://www.python.org/getit/windows/ .

Мне непонятно, какой из этих шагов не работает, но, вероятно, ваша основная проблема связана с установкой ssh-сервера на вашем компьютере с Windows. Можете ли вы войти на свой сервер с помощью командной строки ssh из вашего окна unix / linux? Если нет, обновите свой вопрос, и я обновлю свой ответ.

Вы можете использовать Putty из командной строки:

plink mysuser@targetLinuxmachine "python '/pathtomyscript/myscript.py' &"

Ключи SSH можно управлять через PuttyAgent.

С помощью сценариев cgi с сервера apache можно выполнить код на другом компьютере.

Итак, вы просто хотите запустить команду в фоновом режиме в Linux? Я думаю, вы просто кладете & не в то место. Поместите & за пределами "":

ssh -n -f mysuer@targetwinmachine "python 'C:\Windowspath\myscript.py -someswitch parameter' " &