Как я могу запустить скрипт 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 в качестве фоновой задачи?
4 ответа
Да, 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' " &