python远程运行linux命令

worktile 其他 57

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要在Python中远程运行Linux命令,可以使用paramiko库。paramiko是Python的SSHv2协议实现,可以通过SSH连接到远程服务器,并执行命令。

    首先,要安装paramiko库。可以使用以下命令来安装paramiko:

    “`
    pip install paramiko
    “`

    接下来,可以使用以下代码来远程连接到Linux服务器,并执行命令:

    “`python
    import paramiko

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

    # 允许连接认证信息自动保存到known_hosts文件中
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

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

    # 输出命令执行结果
    print(stdout.read().decode(‘utf-8’))

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

    需要注意的是,如果需要执行的命令需要sudo权限,可以在执行命令时使用sudo命令,例如:

    “`python
    client.exec_command(‘sudo 要执行的命令’)
    “`

    另外,如果需要在远程服务器上执行多个命令,可以使用SSH会话,如下所示:

    “`python
    import paramiko

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

    # 允许连接认证信息自动保存到known_hosts文件中
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

    # 打开SSH会话
    ssh_session = client.get_transport().open_session()

    # 执行命令
    ssh_session.exec_command(‘要执行的命令1’)
    ssh_session.exec_command(‘要执行的命令2’)
    ssh_session.exec_command(‘要执行的命令3’)

    # 关闭SSH会话
    ssh_session.close()

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

    通过使用paramiko库,我们可以在Python中远程连接到Linux服务器,并执行需要的命令。这为我们提供了便利和灵活性,可以远程管理Linux服务器。

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

    1. 使用Python的`subprocess`模块可以远程运行Linux命令。`subprocess`模块提供了执行外部命令的功能,包括远程执行。

    2. 首先,通过`subprocess`模块的`Popen`函数创建一个子进程。可以传入一个命令字符串作为参数,例如`Popen([‘ssh’, ‘username@hostname’, ‘command’])`来执行远程命令。其中,`username`是登录远程主机的用户名,`hostname`是远程主机的IP地址或域名,`command`是要执行的Linux命令。

    3. 如果需要在远程主机上执行多个命令,可以使用分号或者`&&`符号来分隔命令。例如,可以执行`Popen([‘ssh’, ‘username@hostname’, ‘command1 ; command2’])`或者`Popen([‘ssh’, ‘username@hostname’, ‘command1 && command2’])`来执行多个命令。

    4. 可以使用`subprocess`模块的其他函数来处理执行结果,例如`communicate()`函数可以获取命令执行的输出和错误信息。示例代码如下:

    “`python
    import subprocess

    def run_remote_command(username, hostname, command):
    try:
    result = subprocess.Popen([‘ssh’, f'{username}@{hostname}’, command], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = result.communicate()
    if error:
    return error.decode()
    else:
    return output.decode()
    except Exception as e:
    return str(e)
    “`

    5. 在使用远程执行命令时,需要确保本地主机能够连接到远程主机并具有对应的登录权限。此外,还需要确保远程主机上已经安装了SSH服务并允许远程连接。

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

    Python可以通过paramiko库来远程连接Linux服务器,并执行命令。Paramiko是一个用于SSH2协议(Python 2.7及以上和Python 3.4及以上的版本支持)的Python的实现。下面是通过Python远程运行Linux命令的操作流程:

    1. 安装paramiko库
    首先需要确保已经安装了paramiko库。可以使用pip命令进行安装:
    “`
    pip install paramiko
    “`

    2. 导入paramiko库和其他需要的库
    在Python代码中导入paramiko库以及其他需要使用的库:
    “`python
    import paramiko
    import sys
    import os
    “`

    3. 建立SSH连接
    通过paramiko库的SSHClient方法建立与目标Linux服务器的SSH连接:
    “`python
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
    ssh.connect(hostname=’目标服务器IP地址’, port=22, username=’用户名’, password=’密码’)
    except paramiko.AuthenticationException:
    print(“认证失败,请检查用户名和密码。”)
    sys.exit(1)
    “`

    4. 执行Linux命令
    通过SSH连接对象的exec_command方法执行Linux命令:
    “`python
    stdin, stdout, stderr = ssh.exec_command(‘要执行的命令’)
    “`
    可以通过stdout.read()方法获取命令的输出结果:
    “`python
    output = stdout.read().decode()
    print(output)
    “`
    使用stderr.read()方法可以获取命令的错误输出结果。

    5. 关闭SSH连接
    使用SSH连接对象的close方法关闭与目标Linux服务器的连接:
    “`python
    ssh.close()
    “`

    完整的Python代码示例:
    “`python
    import paramiko
    import sys
    import os

    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    try:
    ssh.connect(hostname=’目标服务器IP地址’, port=22, username=’用户名’, password=’密码’)
    except paramiko.AuthenticationException:
    print(“认证失败,请检查用户名和密码。”)
    sys.exit(1)

    stdin, stdout, stderr = ssh.exec_command(‘要执行的命令’)
    output = stdout.read().decode()
    print(output)

    ssh.close()
    “`

    以上就是使用Python远程运行Linux命令的方法和操作流程。使用paramiko库可以方便地远程连接和执行命令。可以根据自己的实际情况进行调整和扩展。

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

400-800-1024

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

分享本页
返回顶部