连接到putty并输入一些命令

时间:2011-11-03 07:36:48

标签: python putty

我想连接到putty并想做几步:

  1. 登录Putty
  2. 键入少量命令以关闭服务器
  3. 遍历特定路径
  4. 从目录中删除文件
  5. 再次启动服务器
  6. 我需要在windows中编写代码。但我的服务器是在linux中。 我该怎么办? 提前致谢

7 个答案:

答案 0 :(得分:8)

您需要的是 Paramiko ,但初学者可能会有点复杂。

对于简单,重复的任务,您可以使用我的脚本 - 它是located on GitHub (https://github.com/tadeck/ssh-matic)并且是为了学习一些Python而创建的。它基于其他人对Paramiko(code accessible here)的友好的SSH Python界面

使用上述SSH模块连接服务器并执行命令非常简单:

import ssh
server = ssh.Connection(host='host', username='user', private_key='key_path')
result = server.execute('your command')

基本上你需要的不是PuTTy,而是Python的SSH模块。该模块应该适用于Windows和Linux。使用我的脚本,您只需要处理要调用的命令,并根据需要调整代码。

祝你好运。告诉我它是否有帮助。

答案 1 :(得分:3)

你可以使用类似的代码:

command = "plink.exe -ssh username@" + hostname + " -pw password -batch \"export DISPLAY='" + hostname + "/unix:0.0' ; "

将使用hostnameusername

打开所需password的ssh

关机: command += "sudo /sbin/halt\""

重新启动: command += "sudo /sbin/reboot\""

使用与上面相同的方法添加其他命令,

使用以下命令运行命令:

pid = subprocess.Popen(command).pid

正如Tadeck所指出的,这只适用于试图连接Linux机器的Windows机器。

答案 2 :(得分:3)

你可以这样做:

# Use plink to open a connection to the remote shell
command = "plink.exe -ssh %s -batch" % credentials
sp = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
# Send commands to the shell as if they were read from a shell script
sp.stdin.write("command1\n")
sp.stdin.write("command2\n")
sp.stdin.close()
# read out the answers, if needed
ans = sp.stdout.read()
sp.wait()    

对于credentials,最好放置PuTTY连接配置文件的名称,并准备好用户名和SSH密钥。

答案 3 :(得分:3)

from pywinauto.application import Application
import time

app = Application ().Start (cmd_line=u'putty -ssh user_name@10.70.15.175')
putty = app.PuTTY
putty.Wait ('ready')
time.sleep (1)
putty.TypeKeys ("password")
putty.TypeKeys ("{ENTER}")
time.sleep (1)
putty.TypeKeys ("ls")
putty.TypeKeys ("{ENTER}")

我正在使用python 2.7。代码在Windows上运行,并连接到远程Linux。它在我的环境中工作。

答案 4 :(得分:0)

您可以使用Fabric执行这些步骤。

答案 5 :(得分:0)

我想您想要登录SSH服务器,为什么不使用http://www.lag.net/paramiko/?所以你不需要腻子

答案 6 :(得分:0)

要使用putty连接到ubuntu计算机并创建并运行python脚本,请检查此link