python登录linux并执行命令

fiy 其他 49

回复

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

    要使用Python登录到Linux并执行命令,可以使用`paramiko`库。`paramiko`是一个Python的SSH库,可以进行远程的ssh连接,并执行命令。下面是具体的步骤:

    1. 安装`paramiko`库。可以使用`pip`命令执行如下指令进行安装:

    “`
    pip install paramiko
    “`

    2. 导入`paramiko`库,并创建一个SSH客户端对象。示例代码如下:

    “`python
    import paramiko

    # 创建SSH客户端对象
    ssh = paramiko.SSHClient()

    # 自动添加服务器的主机名和密钥到本地的hostkeys文件
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    “`

    3. 使用`connect()`方法连接到目标Linux服务器上。需要提供服务器的IP地址、用户名和密码。示例代码如下:

    “`python
    # 连接到Linux服务器
    ssh.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)
    “`

    如果服务器使用SSH密钥进行认证,可以通过指定密钥文件的方式连接:

    “`python
    # 使用密钥文件连接到Linux服务器
    ssh.connect(‘服务器IP地址’, username=’用户名’, key_filename=’密钥文件路径’)
    “`

    4. 执行命令。可以使用`exec_command()`方法执行命令,并通过`stdout`属性获取命令的输出结果。示例代码如下:

    “`python
    # 执行命令,并获取输出结果
    stdin, stdout, stderr = ssh.exec_command(‘要执行的命令’)

    # 打印输出结果
    print(stdout.read().decode(‘utf-8’))
    “`

    5. 关闭与服务器的连接。使用`close()`方法关闭与服务器的连接。示例代码如下:

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

    使用以上步骤,你就可以使用Python登录到Linux服务器并执行命令。记得根据实际情况修改代码中的服务器IP地址、用户名、密码和要执行的命令。

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

    要使用Python登录Linux并执行命令,你需要使用`paramiko`库来建立与Linux服务器的SSH连接,并使用`subprocess`库执行命令。

    下面是一段示例代码,以帮助你实现这个功能:

    “`python
    import paramiko
    import subprocess

    # 定义登录Linux服务器的函数
    def ssh_login(hostname, username, password):
    # 建立SSH连接
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname, username=username, password=password)
    return ssh

    # 定义执行命令的函数
    def run_command(ssh, command):
    # 执行命令并获取结果
    stdin, stdout, stderr = ssh.exec_command(command)
    # 将结果转换为字符串并返回
    return stdout.read().decode(‘utf-8’)

    # 示例用法
    hostname = ‘your_hostname’
    username = ‘your_username’
    password = ‘your_password’
    command = ‘your_command’

    # 登录Linux服务器
    ssh = ssh_login(hostname, username, password)

    # 执行命令
    output = run_command(ssh, command)

    # 打印输出结果
    print(output)

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

    请将`your_hostname`替换为你要登录的Linux服务器的主机名或IP地址,`your_username`替换为你的登录用户名,`your_password`替换为你的登录密码,`your_command`替换为你要执行的命令。

    请注意,这段示例代码仅适用于Linux服务器的登录认证方式为用户名和密码,如果你的认证方式为公钥验证或其他方式,请根据实际情况进行修改。

    此外,为了安全起见,建议将登录信息从代码中提取出来,例如使用配置文件或密钥管理工具来存储用户名和密码,并使用适当的权限设置来保护这些敏感信息。

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

    要在Python中登录到Linux系统并执行命令,可以使用Paramiko库。Paramiko是一个用于SSH(Secure Shell)连接的Python模块,可以帮助我们实现远程执行命令的功能。

    以下是在Python中使用Paramiko登录到Linux系统并执行命令的步骤:

    1. 安装Paramiko库:
    在终端中运行以下命令来安装Paramiko库:
    “`
    pip install paramiko
    “`

    2. 导入必要的模块:
    在Python脚本中导入Paramiko库的所有需要的模块:

    “`python
    import paramiko
    “`

    3. 创建SSH客户端:
    使用Paramiko库创建一个SSH客户端,并指定连接的主机和端口:

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

    注意,需填写正确的主机名、端口、用户名和密码。

    4. 执行命令:
    在连接成功后,可以使用`exec_command`方法来执行Linux命令。以下是执行命令的示例:

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

    `exec_command`方法将所执行的命令作为参数传递给它。即使命令中包含空格或其他特殊字符,也可以直接传递。执行命令后,将返回3个流对象:标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。

    5. 得到命令输出:
    通过流对象,我们可以获取命令的输出结果。以下是获取标准输出结果的示例:

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

    这样,`output`变量将包含命令的输出结果。

    6. 关闭SSH连接:
    执行完命令后,应该关闭SSH连接以释放资源:

    “`python
    client.close()
    “`

    完整的代码示例如下:

    “`python
    import paramiko

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

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

    client.close()

    return output

    if __name__ == ‘__main__’:
    hostname = “
    port = username = “
    password = “
    command = “

    result = execute_command(hostname, port, username, password, command)
    print(result)
    “`

    在上述代码中,我们定义了一个名为`execute_command`的函数,它接受主机名、端口、用户名、密码和命令作为参数,并返回命令的输出结果。

    在`if __name__ == ‘__main__’:`代码块中,我们可以设置主机名、端口、用户名、密码和命令,在执行脚本时将使用这些值。通过调用`execute_command`函数并打印结果,我们可以看到命令的输出。

    还可以通过交互式方式获得用户输入的主机名、端口、用户名、密码和命令,以增加脚本的灵活性。

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

400-800-1024

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

分享本页
返回顶部