python连接linux主机并执行命令

fiy 其他 14

回复

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

    Python可以通过paramiko库连接Linux主机并执行命令。下面是一个示例代码:

    “`python
    import paramiko

    def execute_ssh_command(hostname, username, password, command):
    # 创建SSH客户端对象
    client = paramiko.SSHClient()

    # 自动添加主机到known_hosts文件
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

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

    # 输出结果
    print(stdout.read().decode())

    except Exception as e:
    print(f”连接到主机失败: {e}”)

    finally:
    # 关闭SSH连接
    client.close()

    # 使用示例
    hostname = “xxx.xxx.xxx.xxx” # Linux主机的IP地址
    username = “your_username” # Linux主机的用户名
    password = “your_password” # Linux主机的密码
    command = “ls /home” # 需要执行的命令

    execute_ssh_command(hostname, username, password, command)
    “`

    在使用示例中,你需要将`hostname`替换为你要连接的Linux主机的IP地址,`username`替换为Linux主机的用户名,`password`替换为Linux主机的密码,`command`替换为你要执行的命令。

    此代码使用paramiko库创建SSH客户端对象,连接到远程主机,并执行命令。执行结果会输出到终端。请确保你已经安装了paramiko库。可以使用`pip install paramiko`命令进行安装。

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

    Python提供了多种库和模块,可以用于连接到Linux主机并执行命令。下面是一种常用的方法,使用paramiko库来进行远程连接和命令执行。

    1. 安装paramiko库:
    在命令行中执行以下命令来安装paramiko库:
    “`
    pip install paramiko
    “`

    2. 导入所需的模块:
    在Python脚本中导入paramiko库的Client模块:
    “`python
    import paramiko
    “`

    3. 创建SSH客户端实例:
    使用paramiko库的SSHClient()方法创建一个SSH客户端对象:
    “`python
    ssh_client = paramiko.SSHClient()
    “`

    4. 配置SSH客户端:
    对SSH客户端进行配置,例如自动添加主机密钥和使用密码进行认证:
    “`python
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_client.load_system_host_keys()
    “`

    5. 连接到Linux主机:
    使用connect()方法连接到Linux主机,并提供主机名、用户名和密码:
    “`python
    ssh_client.connect(hostname=’ip_address’, username=’username’, password=’password’)
    “`

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

    7. 处理输出:
    可以使用stdout和stderr的readlines()方法读取命令的输出和错误信息:
    “`python
    output = stdout.readlines()
    error = stderr.readlines()
    “`

    8. 关闭SSH连接:
    使用close()方法关闭SSH连接:
    “`python
    ssh_client.close()
    “`

    以上是使用paramiko库连接到Linux主机并执行命令的基本步骤。根据实际需要,可以进一步优化和扩展代码。

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

    Python提供了多种方式来连接到Linux主机并执行命令。其中常用的方法包括使用paramiko模块、使用subprocess模块和使用fabric模块。下面将逐一介绍这三种方法的操作流程。

    方法一:使用paramiko模块
    1. 安装paramiko模块:在命令行中执行`pip install paramiko`命令进行安装。
    2. 编写Python脚本:使用如下代码连接到Linux主机并执行命令。

    “`python
    import paramiko

    hostname = ‘your-hostname’
    username = ‘your-username’
    password = ‘your-password’
    command = ‘your-command’

    # 创建SSH客户端对象
    client = paramiko.SSHClient()
    # 设置自动添加新的主机密钥到本地known_hosts文件
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接到Linux主机
    client.connect(hostname=hostname, username=username, password=password)
    # 执行命令
    stdin, stdout, stderr = client.exec_command(command)
    # 获取命令输出结果
    output = stdout.readlines()
    # 输出结果
    for line in output:
    print(line.strip())
    # 关闭连接
    client.close()
    “`

    方法二:使用subprocess模块
    1. 直接使用Python的subprocess模块执行命令,无需安装额外的依赖。
    2. 编写Python脚本:使用如下代码连接到Linux主机并执行命令。

    “`python
    import subprocess

    hostname = ‘your-hostname’
    username = ‘your-username’
    password = ‘your-password’
    command = ‘your-command’

    # 拼接ssh命令
    ssh_command = f”sshpass -p {password} ssh {username}@{hostname} ‘{command}'”
    # 执行ssh命令
    output = subprocess.getoutput(ssh_command)
    # 输出结果
    print(output)
    “`

    方法三:使用fabric模块
    1. 安装fabric模块:在命令行中执行`pip install fabric`命令进行安装。
    2. 编写Python脚本:使用如下代码连接到Linux主机并执行命令。

    “`python
    from fabric import Connection

    hostname = ‘your-hostname’
    username = ‘your-username’
    password = ‘your-password’
    command = ‘your-command’

    # 创建连接
    conn = Connection(host=hostname, user=username, connect_kwargs={“password”: password})
    # 执行命令
    result = conn.run(command)
    # 输出结果
    print(result.stdout)
    “`

    以上三种方法都能够连接到Linux主机并执行命令,根据实际需求选择合适的方法。

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

400-800-1024

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

分享本页
返回顶部