python远程连接linux调用命令

worktile 其他 34

回复

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

    要在Python中远程连接Linux并调用命令,可以使用paramiko库。paramiko是一个用于SSH2协议的Python实现,可以通过SSH连接到远程服务器。

    以下是实现步骤:

    1. 安装paramiko库:可以使用pip命令在命令行中安装paramiko库。

    “`
    pip install paramiko
    “`

    2. 导入paramiko库:

    “`python
    import paramiko
    “`

    3. 建立SSH连接:

    “`python
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname, port, username, password)
    “`

    在上述代码中,`hostname`是远程主机的IP地址或主机名,`port`是SSH端口号,默认22,`username`是登录账号,`password`是登录密码。

    4. 执行命令:

    “`python
    stdin, stdout, stderr = ssh.exec_command(command)
    “`

    在上述代码中,`command`是要执行的命令。

    5. 获取命令执行结果:

    “`python
    output = stdout.read().decode(‘utf-8’)
    error = stderr.read().decode(‘utf-8’)
    “`

    命令执行成功时,`output`变量将包含命令输出的结果;执行失败时,`error`变量将包含错误信息。

    6. 关闭SSH连接:

    “`python
    ssh.close()
    “`

    使用完毕后,需要关闭SSH连接。

    通过以上步骤,你可以使用Python远程连接Linux,并调用命令来执行各种操作。请根据实际需求进行调整和改进。

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

    Python提供了多种方法来远程连接Linux并调用命令。以下是五种常用的方法:

    1. 使用paramiko库: Paramiko是一个纯Python实现的SSHv2协议库,可用于安全地远程连接和执行命令。下面是一个使用Paramiko远程连接Linux的例子:

    “`python
    import paramiko

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

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

    # 连接远程主机
    client.connect(‘hostname’, username=’username’, password=’password’)

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

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

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

    2. 使用fabric库: Fabric是一个Python库,用于简化远程服务器管理和部署任务。它建立在paramiko之上,并提供了更高级的API来执行命令和文件传输。以下是一个使用Fabric远程连接Linux的例子:

    “`python
    from fabric import Connection

    # 创建连接
    conn = Connection(‘hostname’, user=’username’, connect_kwargs={‘password’: ‘password’})

    # 执行命令
    result = conn.run(‘command’, hide=True)

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

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

    3. 使用plumbum库: Plumbum是一个简单而强大的库,提供了对远程命令执行和文件传输的支持。以下是一个使用Plumbum远程连接Linux的例子:

    “`python
    from plumbum import SshMachine

    # 创建SSH机器
    machine = SshMachine(‘hostname’, user=’username’, password=’password’)

    # 执行命令
    result = machine[‘command’]()

    # 输出命令执行结果
    print(result)

    # 关闭机器连接
    machine.close()
    “`

    4. 使用fabric3库: Fabric3是一个基于Paramiko的Python 3版本的Fabric库。它提供了类似于Fabric的高级API来简化远程服务器管理和部署任务。以下是一个使用Fabric3远程连接Linux的例子:

    “`python
    from fabric3 import Connection

    # 创建连接
    conn = Connection(‘hostname’, user=’username’, connect_kwargs={‘password’: ‘password’})

    # 执行命令
    result = conn.run(‘command’, hide=True)

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

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

    5. 使用subprocess库: subprocess是Python的一个内置库,可用于创建和管理子进程。通过使用ssh命令和subprocess库,可以实现远程连接Linux并调用命令。以下是一个使用subprocess远程连接Linux的例子:

    “`python
    import subprocess

    # 执行ssh命令连接远程主机并执行命令
    result = subprocess.run([‘ssh’, ‘username@hostname’, ‘command’], capture_output=True, text=True)

    # 输出命令执行结果
    print(result.stdout)
    “`

    以上是五种常用的Python远程连接Linux并调用命令的方法。根据具体需求和个人偏好,可以选择适合自己的方法来实现。

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

    在Python中,可以使用paramiko模块实现与Linux系统的远程连接,并调用命令。Paramiko是一个用于SSHv2协议的Python实现,它可以用于远程操作和文件传输。

    下面是实现远程连接和调用命令的方法和操作流程:

    1. 安装paramiko模块:在终端或命令提示符中运行以下命令安装paramiko模块:
    “`shell
    pip install paramiko
    “`

    2. 导入paramiko模块:在Python代码中导入paramiko模块:
    “`python
    import paramiko
    “`

    3. 创建SSHClient对象:使用paramiko的SSHClient类创建一个SSH连接的客户端对象:
    “`python
    client = paramiko.SSHClient()
    “`

    4. 设置自动添加主机密钥:使用set_missing_host_key_policy方法,设置自动添加主机密钥(如果没有设置,连接时可能会报重要错误):
    “`python
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    “`

    5. 链接远程主机:使用connect方法连接远程主机,并提供远程主机的IP地址、用户名和密码或密钥文件(如果需要的话):
    “`python
    client.connect(hostname=’remote_host’, username=’username’, password=’password’)
    “`

    6. 执行远程命令:使用exec_command方法执行远程命令,并获取输入、输出和错误流:
    “`python
    stdin, stdout, stderr = client.exec_command(‘command’)
    “`

    7. 处理输入、输出和错误流:可以从stdout和stderr获取命令的标准输出和标准错误输出:
    “`python
    output = stdout.read().decode(‘utf-8’)
    error = stderr.read().decode(‘utf-8’)
    “`

    8. 关闭SSH连接:在完成远程命令的调用后,要关闭SSH连接,释放资源:
    “`python
    client.close()
    “`

    完整的示例代码如下:
    “`python
    import paramiko

    def remote_command(hostname, username, password, command):
    try:
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=hostname, username=username, password=password)

    stdin, stdout, stderr = client.exec_command(command)
    output = stdout.read().decode(‘utf-8’)
    error = stderr.read().decode(‘utf-8’)

    print(“Command output:”)
    print(output)

    if error:
    print(“Command error:”)
    print(error)

    except Exception as e:
    print(“Error: ” + str(e))

    finally:
    client.close()

    # 示例调用
    remote_command(‘remote_host’, ‘username’, ‘password’, ‘ls -l’)
    “`

    在上述示例中,’remote_host’是远程主机的IP地址,’username’和’password’是登录远程主机的用户名和密码,’ls -l’是要执行的命令。

    通过以上步骤,你可以使用Python来实现远程连接Linux并调用命令。

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

400-800-1024

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

分享本页
返回顶部