Мне нужно организовать некоторые скриптовые задачи между несколькими машинами 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' " &