利用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)


四.效果的实现 

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



 


五.致谢 

 

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lua编程

文章目录 概述lua数据类型元表注意 闭包表现 实现 lua/c 接口编程skynet中调用层次虚拟栈C闭包注册表userdatalightuserdata 小结 概述 这次是skynet,需要一些lua/c相关的。写一篇博客,记录下。希望有所收获。 lua数据类型 boolean , number , string…

大模型算法面试题(十五)

本系列收纳各种大模型面试题及答案。 1、大模型LLM进行SFT如何对样本进行优化 大模型LLM(Language Model,语言模型)进行SFT(Structured Fine-Tuning,结构化微调)时,对样本的优化是提升模型性能…

Linux源码阅读笔记16-文件系统关联及字符设备操作

文件系统关联 设备文件都是由标准函数处理,类似普通文件。设备文件也是通过虚拟文件系统来管理的,和普通文件都是通过完全相同的接口访问的。 inode中设备文件的成员数据 虚拟文件系统每个文件都关联到一个inode,用于管理文件的属性。源码如…

【Go - context 速览,场景与用法】

作用 context字面意思上下文,用于关联管理上下文,具体有如下几个作用 取消信号传递:可以用来传递取消信号,让一个正在执行的函数知道它应该提前终止。超时控制:可以设定一个超时时间,自动取消超过执行时间…

Swift学习入门,新手小白看过来

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

(十三)Spring教程——依赖注入之工厂方法注入

1.工厂方法注入 工厂方法是在应用中被经常使用的设计模式,它也是控制反转和单例设计思想的主要实现方法。由于Spring IoC容器以框架的方式提供工厂方法的功能,并以透明的方式开放给开发者,所以很少需要手工编写基于工厂方法的类。正是因为工厂…

如何从网站获取表格数据

1.手动复制粘贴 最简单的方法是直接在网页上手动选择表格内容,然后复制粘贴到Excel或其他表格处理软件中。这种方法适用于表格较小且不经常更新的情况。 2.使用浏览器插件 有许多浏览器插件可以帮助从网页中提取表格数据,例如: -TableCapt…

SSRF过滤攻击

SSRF绕过: 靶场地址:重庆橙子科技SSRF靶场 这个是毫无过滤的直接读取,但是一般网站会设置有对SSRF的过滤,比如将IP地址过滤。 下面是常用的绕过方式: 1.环回地址绕过 http://127.0.0.1/flag.php http://017700…

相机怎么选(不推荐,只分析)

title: 相机怎么选 tags: [相机, 单反相机] categories: [其他, 相机] 最近准备购买,相机怎么选,我去搜索了许多文章,整理了一篇小白挑选技术篇,供大家参考。 分类 胶片相机 需要装入胶卷才能使用的相机,拍照后可直…

永磁同步电机无速度算法--非线性磁链观测器

非线性磁链观测器顾名思义观测器的状态变量为磁链值,观测的磁链值收敛于电机实际磁链值,观测器收敛。非线性是由于观测器存在sin和cos项,所以是非线性观测器 一、原理介绍 表贴式永磁同步电机αβ轴电压方程: 将公式变换 定义状态变量X: 定…

Milvus 向量数据库进阶系列丨部署形态选型

本系列文章介绍 在和社区小伙伴们交流的过程中,我们发现大家最关心的问题从来不是某个具体的功能如何使用,而是面对一个具体的实战场景时,如何选择合适的向量数据库解决方案或最优的功能组合。在 “Milvus 向量数据库进阶” 这个系列文章中&…

Java实现打印功能

JPG图片文件格式打印实现 打印JPG图片格式的文件,本次采用的Java原生的打印方式。 public static void main(String[] argv) throws Exception {File file new File("E:\\a.jpg");String printerName "HP MFP M436 PCL6";//打印机名包含字串…

vite+vue3项目,开发时候正常,打包后router-view不渲染

这是个很奇怪的问题,但是基本上命名或者引入文件的方式导致的。要么文件名与系统的某些标签名一样,要么就是routes写成了routers。还有一种就是导入方式错误的 错误截图: 正确引入截图:

Flink大状态作业调优——DataStream篇

一、Flink 状态(State)简介 在流式计算中有些操作一次处理一个独立的事件(比如解析一个事件), 有些操作却需要记住多个事件的信息(比如窗口操作)。那些需要记住多个事件信息的操作就是有状态的。流式计算分为无状态计算和有状态计算两种情况。状态可以理…

Word题库转Excel关键字快速查询题库

一、前言 内部培训会有Word版本题库,考核时如果使用Word、Excel、PDF等文档进行关键字查询题目体验不佳。so,撸个软件吧!   20240728更新:支持更多题库类型。 二、Word题库转Excel 1、Word题库格式要求 内容格式要求事例题目…

在 Postman 中设置全局 token

目录 问题描述解决方案 问题描述 在使用 Postman 进行接口测试时,经常会遇到在 Header 中添加 token 的情况。当接口数量较多时,需要为每个接口进行设置,而且当 token 失效时需要重新获取并设置,这样一来效率较低。 解决方案 下…

wpf中开发独立模块功能和左侧1个菜单的框架演示

此篇文章适用于有一定经验的wpf开发者,并且是团队协作开发模式,并且业务与此比较相近的话,用起来非常的方便。 我们在开发wpf程序的时候,比如1,2个人,那肯定随便怎么开发,都没事,代码…

Matlab M_map工具箱绘制Interrupted Mollweide Projection

GMT自带了许多的地图投影,但是对于Interrupted Mollweide投影效果却不好。 作为平替的m_map工具箱中带有的投影类型可完美解决这一问题。 Interrupted Mollweide Projection长这样 全球陆地 全球海洋 使用Matlab工具箱m_map展示全球海平面变化的空间分布 addpath(…

【Dart 教程系列第 49 篇】什么是策略设计模式?如何在 Dart 中使用策略设计模式

这是【Dart 教程系列第 49 篇】,如果觉得有用的话,欢迎关注专栏。 博文当前所用 Flutter SDK:3.22.1、Dart SDK:3.4.1 文章目录 一:什么是策略设计模式?二:为什么要使用策略设计模式&#xff1…

UG NX2406 安装教程

软件介绍 UG是一个交互式CAD/CAM(计算机辅助设计与计算机辅助制造)系统,它功能强大,可以轻松实现各种复杂实体及造型的建构。 它在诞生之初主要基于工作站,但随着PC硬件的发展和个人用户的迅速增长,在PC上的应用取得了迅猛的增长…