利用python自动化运维i脚本实现远程连接服务器并实现相应命令


 

目录

前言:

一.调用的python库介绍

二.在主机上安装好相应的库

2.1激活虚拟环境 

三.代码实现以及解析 

四.效果的实现 

五.致谢 


前言:

在当今快速发展的技术环境中,自动化运维已成为 IT 基础设施管理的关键组成部分。它不仅可以显著提高工作效率,减少重复性任务,还能够确保操作的一致性和准确性,降低人为失误的风险。Python,作为一种强大而灵活的编程语言,提供了丰富的库和框架,使其成为实现自动化运维任务的理想工具。

SSH(Secure Shell)协议作为一种安全、可靠的远程登录和命令执行方式,已经成为系统管理员日常工作中不可或缺的一部分。通过 SSH,我们可以安全地连接到远程服务器,执行各种命令和脚本,而无需物理访问服务器。

本文旨在向读者展示如何利用 Python 进行自动化运维,特别是通过 SSH 远程连接服务器并执行命令。我们将深入探讨 Python 中的 paramiko 库,这是一个非常流行的用于 SSH2 连接的库,它提供了执行远程命令、文件传输和端口转发等功能。

无论你是经验丰富的系统管理员,还是对自动化运维充满热情的开发者,本文都将为你提供实用的脚本示例和深入的解析,帮助你快速掌握 Python 自动化运维的精髓。通过阅读本文,你将学会如何编写强大的自动化脚本,这些脚本将简化你的工作流程,提高你的工作效率,并最终使你能够专注于更加复杂和创新的任务。

 


一.调用的python库介绍
 

利用python语言我们可以实现很多功能以及相关软件自动化的实现。
python的Paramiko 是一个用于 SSH2 连接的 Python 实现,提供了执行远程命令、文件传输和端口转发等功能。
特点是支持加密传输,能够安全地与远程服务器进行交互。它允许你创建 SSH 客户端和服务器,进行认证,并执行各种网络任务。
 

二.在主机上安装好相应的库

2.1激活虚拟环境 


我们在安装相应的库的时候先激活虚拟环境,如果不激活虚拟环境就安装到全局中去了,会导致库引用不了的情况。
 

在Windows主机上打开CMD并根据如下的命令完成相应的命令进行配置

D:\pythonProject\venv\Scripts\activate
#前面的是python文件的目录后面加上\activate进行虚拟环境激活 

进入虚拟配置根据下面命令安装Paramiko库 

pip install paramiko


这里我们用的是在线的方式安装库。当然我们也可以使用离线的方式进行安装。



 

三.代码实现以及解析 
 

import paramiko

#引入库

def execute_remote_command(hostname, username, password, command):#设置一个函数接受四个参数:hostname(远程主机的地址)、username(登录用户名)、password(登录密码)和 command(要在远程主机上执行的命令)。
    try:
        client = paramiko.SSHClient()
        #创建实例 管理SSH连接对象 
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        #这行代码设置了 SSH 客户端的主机密钥策略。AutoAddPolicy 允许客户端自动添加未知主机的密钥,这对于自动化脚本很有用,因为它避免了每次连接时的手动干预。
        client.connect(hostname, username=username, password=password)
        #使用 connect 方法建立到远程主机的 SSH 连接,传入主机名、用户名和密码。
        stdin, stdout, stderr = client.exec_command(command)
        使用 exec_command 方法在远程主机上执行提供的命令。这个方法返回三个管道:stdin(标准输入),stdout(标准输出),和 stderr(标准错误)
        # 输出命令执行结果
        print(stdout.read().decode())

   #异常处理 
    except Exception as e:
        print(f"Error: {e}")
    finally:
        client.close()


if __name__ == "__main__":
    hostname = "your_remote_host"
    username = "your_username"
    password = "your_password"
    command = "ls -l"

    execute_remote_command(hostname, username, password, command)
这部分是脚本的入口点。它设置了远程主机的 IP 地址、用户名、密码和要执行的命令,然后调用 execute_remote_command 函数来执行这些操作。

    execute_remote_command(hostname, username, password, command)


四.效果的实现 

我们打开虚拟机并将相应的数据输入到脚本中去实现的结果如图



 


五.致谢 

 

非常感谢您阅读我的博客!如果您有任何问题、建议或想了解特定主题,请随时告诉我。您的反馈对我非常重要,我将继续努力提供高质量的内容。

如果您喜欢我的博客,请考虑订阅我们的更新,这样您就不会错过任何新的文章和信息。同时,欢迎您分享我们的博客给更多的朋友和同事,让更多人受益。

再次感谢您的支持和关注!如果您有任何想法或需求,请随时与我们联系。祝您生活愉快,学习进步!

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值