python3远程执行linux命令

fiy 其他 42

回复

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

    Python3可以使用paramiko库来实现远程执行Linux命令。

    首先,需要使用pip命令安装paramiko库:
    “`
    pip install paramiko
    “`

    然后,可以使用以下代码来实现远程执行Linux命令:
    “`python
    import paramiko

    # 创建SSHClient对象
    ssh_client = paramiko.SSHClient()

    # 自动添加主机到已知主机列表(默认拒绝连接)
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

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

    # 获取命令执行结果
    result = stdout.read().decode()

    # 输出结果
    print(result)

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

    在上述代码中,首先创建了一个SSHClient对象,然后设置自动添加主机到已知主机列表的策略,并使用`connect`方法连接远程主机。在连接成功后,可以使用`exec_command`方法执行需要的Linux命令,并通过`stdout.read()`方法获取命令执行结果。最后,关闭SSH连接。

    需要注意的是,本方法需要确保远程主机上已经安装了SSH服务,并且允许Python脚本进行远程连接。另外,为了安全考虑,建议使用SSH密钥进行认证,而不是使用明文密码进行连接。

    以上就是使用Python3远程执行Linux命令的方法。希望对你有帮助!

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

    在Python3中,可以通过以下几种方法实现远程执行Linux命令:

    1. 使用paramiko模块:paramiko是一个基于Python的SSHv2协议的实现,可以用于远程执行命令、上传下载文件等。可以通过以下代码实现远程执行Linux命令:

    “`python
    import paramiko

    # 远程服务器的相关信息
    hostname = ‘remote_server_ip’
    port = ’22’
    username = ‘remote_username’
    password = ‘remote_password’

    # 创建SSH客户端
    ssh = paramiko.SSHClient()
    # 添加主机到已知主机列表(默认情况下,paramiko不会接受不在已知主机列表中的主机)
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接远程服务器
    ssh.connect(hostname=hostname, port=port, username=username, password=password)

    # 执行命令
    stdin, stdout, stderr = ssh.exec_command(‘ls -l’)
    # 获取命令执行结果
    result = stdout.read().decode()
    # 输出结果
    print(result)

    # 关闭SSH连接
    ssh.close()
    “`

    2. 使用fabric模块:fabric是基于paramiko的高级Python库,提供了更加简洁的API,可以用于远程执行命令、上传下载文件、管理远程主机等。可以通过以下代码实现远程执行Linux命令:

    “`python
    from fabric import Connection

    # 远程服务器的相关信息
    hostname = ‘remote_server_ip’
    username = ‘remote_username’
    password = ‘remote_password’

    # 创建SSH连接
    conn = Connection(host=hostname, user=username, connect_kwargs={“password”: password})

    # 执行命令
    result = conn.run(‘ls -l’, hide=True)
    # 输出结果
    print(result.stdout)

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

    3. 使用subprocess模块:subprocess模块是Python的标准库之一,提供了创建子进程、连接子进程的输入/输出管道等功能,可以通过该模块实现远程执行Linux命令。可以通过以下代码实现远程执行Linux命令:

    “`python
    import subprocess

    # 远程服务器的相关信息
    hostname = ‘remote_server_ip’
    username = ‘remote_username’
    password = ‘remote_password’

    # 连接远程服务器并执行命令
    ssh_command = f”sshpass -p {password} ssh {username}@{hostname} ‘ls -l'”
    result = subprocess.check_output(ssh_command, shell=True)
    # 输出结果
    print(result.decode())
    “`

    4. 使用ansible模块:ansible是一个开源的配置管理和自动化工具,可以通过编写任务剧本(playbook)来实现远程执行命令、管理远程主机等。可以通过ansible模块结合Python来实现远程执行Linux命令。可以通过以下代码实现远程执行Linux命令:

    “`python
    import ansible.runner

    # 远程服务器的相关信息
    host = ‘remote_server_ip’
    username = ‘remote_username’
    password = ‘remote_password’

    # 执行命令
    runner = ansible.runner.Runner(
    module_name=’command’,
    module_args=’ls -l’,
    pattern=host,
    remote_user=username,
    remote_pass=password
    )
    result = runner.run()

    # 输出结果
    print(result[‘contacted’][host][‘stdout’])
    “`

    5. 使用SSH协议:Python的paramiko和fabric模块都是基于SSH协议的实现,如果需要更加底层的控制,可以直接使用SSH协议来实现远程执行Linux命令。可以通过以下代码实现远程执行Linux命令:

    “`python
    import socket
    import paramiko

    # 远程服务器的相关信息
    hostname = ‘remote_server_ip’
    port = ’22’
    username = ‘remote_username’
    password = ‘remote_password’

    # 创建SSH客户端
    client = paramiko.SSHClient()
    # 添加主机到已知主机列表(默认情况下,paramiko不会接受不在已知主机列表中的主机)
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    try:
    # 连接远程服务器
    client.connect(hostname=hostname, port=port, username=username, password=password)
    # 创建SSH通道
    transport = client.get_transport()
    # 打开一个会话通道
    session = transport.open_session()
    # 设置会话的伪终端
    session.get_pty()
    # 执行命令
    session.exec_command(‘ls -l’)
    # 获取命令执行结果
    result = session.makefile().read()
    # 输出结果
    print(result)
    finally:
    # 关闭SSH会话
    session.close()
    # 关闭SSH连接
    client.close()
    “`

    以上是几种实现远程执行Linux命令的方法,你可以根据自己的需求选择适合的方法来使用。

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

    Python3提供了多种实现方式来实现远程执行Linux命令的功能。下面将介绍两种常用的方法,分别是paramiko和fabric。

    方法一:使用paramiko库

    Paramiko是Python的一个SSH库,可以用于在远程服务器上执行命令。首先需要安装paramiko库,可以使用pip命令进行安装。

    1. 安装paramiko库:
    “`
    pip install paramiko
    “`

    2. 创建SSH连接:
    “`python
    import paramiko

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

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

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

    3. 执行命令:
    “`python
    # 执行命令
    stdin, stdout, stderr = client.exec_command(‘要执行的命令’)

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

    4. 关闭SSH连接:
    “`python
    # 关闭SSH连接
    client.close()
    “`

    方法二:使用fabric库

    Fabric是一个基于paramiko的Python库,它提供了更高级的接口和封装,以便更容易地在远程服务器上执行命令。

    1. 安装fabric库:
    “`
    pip install fabric
    “`

    2. 导入并使用fabric库:
    “`python
    from fabric import Connection

    # 创建SSH连接
    c = Connection(‘用户名@服务器地址’)

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

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

    Fabric提供了更多的功能,如并行执行命令、上传下载文件等,通过在代码中调用相应的函数来实现。可以参考官方文档获取更多信息。

    总结:

    以上是使用Python3远程执行Linux命令的两种常用方法。使用paramiko可以更灵活地控制SSH连接,而使用fabric可以以更简洁的方式执行命令,并提供了更多的功能。根据实际需求选择合适的方法来实现远程命令执行功能。

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

400-800-1024

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

分享本页
返回顶部