python连接linux并且执行命令

worktile 其他 22

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要用Python连接Linux并执行命令,可以使用paramiko库。paramiko是一个用于SSHv2协议的Python实现,可以用于建立安全的SSH连接并执行远程命令。

    下面是一个示例代码,展示如何使用paramiko连接Linux并执行命令:

    “`python
    import paramiko

    # 创建SSH客户端对象
    ssh_client = paramiko.SSHClient()

    # 自动添加目标主机到已知主机列表
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # 连接目标主机
    ssh_client.connect(hostname=’主机名’, port=22, username=’用户名’, password=’密码’)

    # 执行命令
    stdin, stdout, stderr = ssh_client.exec_command(‘要执行的命令’)

    # 输出命令执行结果
    print(stdout.read().decode())

    # 关闭连接
    ssh_client.close()
    “`

    在上述代码中,你需要将`主机名`替换为要连接的远程Linux主机的IP地址或域名,`用户名`和`密码`替换为正确的凭据。

    当你执行`ssh_client.exec_command()`方法时,它会返回一个元组,包含标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。你可以通过调用`stdout.read().decode()`来获取命令的输出结果。

    最后,通过调用`ssh_client.close()`方法来关闭SSH连接。

    需要注意的是,使用该方法连接Linux主机时,需要确保目标主机已启用SSH服务,并且允许用于连接的用户名和密码登录。如果你使用的是密钥文件进行身份验证,可以使用`ssh_client.connect()`方法的`key_filename`参数来指定私钥文件的路径。

    希望这个示例代码对你有帮助!

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Python提供了多种方法来连接Linux系统并执行命令。下面是五种常用的方法:

    1. Paramiko库:Paramiko是一个Python库,用于实现SSH(Secure Shell)协议,可以用于远程连接和执行命令。下面是一个简单的示例:

    “`python
    import paramiko

    # 创建SSH客户端
    client = paramiko.SSHClient()

    # 添加主机密钥
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # 连接到远程主机
    client.connect(hostname=’服务器IP地址’, username=’用户名’, password=’密码’)

    # 执行命令
    stdin, stdout, stderr = client.exec_command(‘要执行的命令’)

    # 获取命令输出
    output = stdout.read().decode()

    # 关闭连接
    client.close()
    “`

    2. subprocess模块:subprocess是Python内置的用于创建子进程的模块,可以通过它来连接到Linux系统并执行命令。下面是一个示例:

    “`python
    import subprocess

    # 执行命令
    output = subprocess.check_output(‘要执行的命令’, shell=True)

    # 打印命令输出
    print(output.decode())
    “`

    3. fabric库:fabric是一个基于Paramiko的高层库,用于简化远程执行命令的过程。下面是一个示例:

    “`python
    from fabric import Connection

    # 创建连接
    c = Connection(host=’服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’})

    # 执行命令
    result = c.run(‘要执行的命令’)

    # 打印命令输出
    print(result.stdout)
    “`

    4. pxssh库:pxssh是一个基于Python的pexpect库的模块,用于SSH远程连接和执行命令。下面是一个示例:

    “`python
    from pxssh import pxssh

    # 创建SSH客户端
    ssh = pxssh()

    # 登录远程主机
    ssh.login(‘服务器IP地址’, ‘用户名’, ‘密码’)

    # 执行命令
    ssh.sendline(‘要执行的命令’)
    ssh.prompt()

    # 获取命令输出
    output = ssh.before.decode()

    # 关闭连接
    ssh.logout()
    “`

    5. fabric2库:fabric2是fabric的升级版本,提供了更简洁、更直观的API。下面是一个示例:

    “`python
    from fabric import Connection

    # 创建连接
    c = Connection(host=’服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’})

    # 执行命令
    result = c.run(‘要执行的命令’)

    # 打印命令输出
    print(result.stdout)
    “`

    以上是五种常用的方法来连接Linux系统并执行命令的示例。根据实际需求选择合适的方法即可。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要在Python中连接到Linux并执行命令,可以使用paramiko库。Paramiko是一个用于SSH2协议的Python实现,可以用于连接和控制远程服务器。

    以下是实现此目标的步骤:

    1. 安装paramiko库
    使用pip命令在命令行中安装paramiko库:
    “`
    pip install paramiko
    “`

    2. 导入必要的模块
    在Python脚本中,使用以下代码导入paramiko模块:
    “`python
    import paramiko
    “`

    3. 建立SSH连接
    首先,需要使用paramiko.Transport()类来建立SSH连接:
    “`python
    ssh = paramiko.Transport(“hostname”, port) # 用实际的主机名和端口号替代
    ssh.connect(username=”username”, password=”password”) # 用实际的用户名和密码替代
    “`

    4. 创建SSH客户端
    创建SSH客户端对象,以便进行远程命令的执行和管理:
    “`python
    ssh_client = ssh.open_channel(kind=”session”) # 打开一个新的会话通道
    “`

    5. 执行命令
    使用SSH客户端对象执行命令:
    “`python
    command = “your_command” # 替换为要执行的命令
    stdin, stdout, stderr = ssh_client.exec_command(command)
    “`

    6. 获取执行结果
    可以使用stdout和stderr来获取命令的标准输出和标准错误输出:
    “`python
    output = stdout.read().decode()
    error = stderr.read().decode()
    “`

    7. 关闭SSH连接
    执行完命令后,务必关闭SSH连接:
    “`python
    ssh_client.close()
    ssh.close()
    “`

    完整的示例代码如下:

    “`python
    import paramiko

    def execute_command(hostname, port, username, password, command):
    ssh = paramiko.Transport(hostname, port)
    ssh.connect(username=username, password=password)

    ssh_client = ssh.open_channel(kind=”session”)
    stdin, stdout, stderr = ssh_client.exec_command(command)

    output = stdout.read().decode()
    error = stderr.read().decode()

    ssh_client.close()
    ssh.close()

    return output, error

    # 测试示例
    hostname = “your_hostname”
    port = 22
    username = “your_username”
    password = “your_password”
    command = “ls -l”

    output, error = execute_command(hostname, port, username, password, command)

    if output:
    print(“命令执行结果:”)
    print(output)
    else:
    print(“错误信息:”)
    print(error)
    “`

    请注意,这只是一个基本示例,您可能需要根据实际需求进行修改和完善。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部