python远程连接linux调用命令行

worktile 其他 96

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Python可以通过多种方式远程连接Linux服务器并调用命令行。下面介绍两种常用的方法:

    方法一:使用paramiko库
    1. 首先,确保已经安装paramiko库,可以使用pip命令进行安装。
    “`
    pip install paramiko
    “`
    2. 导入paramiko库,并创建SSHClient对象。
    “`python
    import paramiko

    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    “`
    3. 使用SSHClient对象连接到远程Linux服务器,并进行身份验证。
    “`python
    ssh.connect(hostname=’远程服务器IP地址’, port=22, username=’用户名’, password=’密码’)
    “`
    4. 调用命令行。可以使用SSHClient对象的exec_command方法来执行命令,并通过read方法获取命令输出结果。
    “`python
    stdin, stdout, stderr = ssh.exec_command(‘需要执行的命令’)
    output = stdout.read().decode(‘utf-8’)
    print(output)
    “`
    5. 关闭SSH连接。
    “`python
    ssh.close()
    “`
    方法二:使用fabric库
    1. 首先,确保已经安装fabric库,可以使用pip命令进行安装。
    “`
    pip install fabric
    “`
    2. 导入fabric库,并创建Connection对象。
    “`python
    from fabric import Connection

    c = Connection(‘远程服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’})
    “`
    3. 调用命令行。可以使用Connection对象的run方法来执行命令,并通过stdout属性获取命令输出结果。
    “`python
    result = c.run(‘需要执行的命令’, hide=True)
    output = result.stdout.strip()
    print(output)
    “`
    4. 关闭连接。
    “`python
    c.close()
    “`
    以上就是使用Python远程连接Linux服务器并调用命令行的两种常用方法。根据实际需求,选择适合自己的方法进行操作。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Python提供了多种方式来远程连接Linux服务器并调用命令行。以下是一些常用的方法和库:

    1. 使用paramiko库:
    paramiko是Python用于SSH协议的库,可以使用它来远程连接Linux服务器并执行命令。下面是一个简单的例子:

    “`python
    import paramiko

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

    # 设置自动添加主机密钥
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # 连接服务器
    client.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)

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

    # 打印命令执行结果
    print(stdout.read().decode())

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

    2. 使用fabric库:
    fabric是一个用于远程执行命令的Python库,它基于paramiko库,提供了更加方便的API。以下是一个示例:

    “`python
    from fabric import Connection

    # 连接服务器
    with Connection(host=’服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’}) as conn:
    # 执行命令
    result = conn.run(‘命令’, hide=True)

    # 打印命令执行结果
    print(result.stdout)
    “`

    3. 使用ssh库:
    ssh是一个用于SSH连接的Python库,可以使用它来连接服务器和执行命令。下面是一个示例:

    “`python
    import ssh

    # 创建SSH会话
    session = ssh.SSHClient()

    # 自动添加主机密钥
    session.set_missing_host_key_policy(ssh.AutoAddPolicy())

    # 连接服务器
    session.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)

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

    # 打印命令执行结果
    print(stdout.read().decode())

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

    4. 使用subprocess模块:
    subprocess是Python标准库中的一个模块,可以用来创建子进程并执行命令。以下是一个示例:

    “`python
    import subprocess

    # 执行命令
    result = subprocess.run([‘ssh’, ‘服务器IP地址’, ‘命令’], check=True, capture_output=True, text=True)

    # 打印命令执行结果
    print(result.stdout)
    “`

    5. 使用paramiko和pexpect库:
    pexpect是一个通过spawnpty()方法创建子进程并与之交互的Python库。结合paramiko和pexpect可以实现远程连接Linux服务器并交互式地执行命令。以下是一个示例:

    “`python
    import paramiko
    import pexpect

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

    # 设置自动添加主机密钥
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # 连接服务器
    client.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)

    # 打开shell会话
    channel = client.invoke_shell()

    # 通过pexpect进行交互
    child = pexpect.spawn(channel)

    # 向终端发送命令
    child.sendline(‘命令’)

    # 读取命令输出
    child.expect(‘#’)
    output = child.before.decode()

    # 打印命令输出
    print(output)

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

    这些方法和库都提供了不同的功能和灵活性,可以根据需要选择适合自己的方式来远程连接Linux服务器并调用命令行。

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

    要实现Python远程连接Linux并调用命令行,可以使用paramiko库。paramiko是一个用于SSH2协议的Python库,它支持远程执行命令、SFTP传输文件等操作。

    下面是一步步的操作流程:

    1. 安装paramiko库

    可以使用pip命令进行安装:
    “`
    pip install paramiko
    “`

    2. 导入paramiko库和其他必要的库

    “`python
    import paramiko
    import time
    import sys
    import getpass
    “`

    3. 创建SSHClient对象

    “`python
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    “`

    4. 输入远程服务器的连接信息

    “`python
    remote_server = input(“请输入远程服务器地址:”)
    username = input(“请输入用户名:”)
    password = getpass.getpass(“请输入密码:”)
    “`

    5. 连接远程服务器

    “`python
    try:
    ssh.connect(remote_server, username=username, password=password)
    print(“连接成功!”)
    except Exception as e:
    print(“连接失败:”, e)
    sys.exit()
    “`

    6. 执行命令行操作

    “`python
    command = input(“请输入需要执行的命令:”)
    try:
    stdin, stdout, stderr = ssh.exec_command(command)
    time.sleep(1) # 延时等待命令执行完成

    # 输出命令执行结果
    print(stdout.read().decode())
    except Exception as e:
    print(“命令执行失败:”, e)
    “`

    7. 关闭连接

    “`python
    ssh.close()
    “`

    这样就完成了通过Python远程连接Linux并调用命令行的操作。你可以根据实际需求对代码进行更进一步的优化和扩展。

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

400-800-1024

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

分享本页
返回顶部