pxssh类

pxssh 是pexpect的派生类,针对上ssh会话操作上再做一层封装,提供与基类更加直接的操作方法。 pxssh 类定义:

  class pexpect.pxssh.pxssh(
      timeout=30,
      maxread=2000,
      searchwindow=None,
      logfile=None,
      cwd=None,
      env=None)
  • login() 建立ssh连接;

  • logout()断开连接;

  • prompt()等待系统提示符,用于等待命令执行结束。

例子:

实现ssh登录的例子

#!/usr/bin/env python
 #-*- coding:utf-8 -*-

import pxssh
import getpass
try:
    # 调用构造函数,创建一个 pxssh 类的对象.
    s = pxssh.pxssh()
    # 获得用户指定 ssh 主机域名.
    hostname = raw_input('hostname: ')
    # 获得用户指定 ssh 主机用户名.
    username = raw_input('username: ')
    # 获得用户指定 ssh 主机密码.
    password = getpass.getpass('password: ')
    #ssh 端口
    port = raw_input('port:')
    # 利用 pxssh 类的 login 方法进行 ssh 登录,原始 prompt 为'$' , '#'或'>'
    s.login (hostname, username, password, port=port ,original_prompt='[$#>]')

    # 发送命令 'uptime'
    s.sendline ('uptime')
    # 匹配 prompt
    s.prompt()
    # 将 prompt 前所有内容打印出,即命令 'uptime' 的执行结果.
    print s.before
    # 发送命令 ' ls -l '
    s.sendline ('ls -l')
    # 匹配 prompt
    s.prompt()
    # 将 prompt 前所有内容打印出,即命令 ' ls -l ' 的执行结果.
    print s.before
    # 退出 ssh session
    s.logout()
except pxssh.ExceptionPxssh, e:
    print "pxssh failed on login."
    print str(e)

实现自动化ftp操作

Last updated