python实现linux服务器批量修改密码并生成execl

yizhihongxing

对于“python实现linux服务器批量修改密码并生成excel”的攻略,我可以列出以下步骤:

1. 安装必要的Python模块

在使用Python实现linux服务器批量修改密码并生成excel的过程中,需要使用到paramiko模块和openpyxl模块,因此需要先安装这两个模块。在终端中输入以下命令进行安装:

pip install paramiko openpyxl

2. 编写Python脚本

在安装好必要的模块后,我们将会编写一个Python脚本来实现批量修改密码并将结果保存至excel表格中。以下给出一个示例代码:

import paramiko
from openpyxl import Workbook

def change_password(hostname, username, password, oldpwd, newpwd):
    # 连接服务器
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname, 22, username, password)

    # 修改密码
    stdin, stdout, stderr = ssh.exec_command(f"echo '{newpwd}\n{newpwd}'| passwd {username} --stdin")
    output = stdout.read().decode('utf-8')

    # 关闭连接
    ssh.close()

    # 返回结果
    if 'successfully' in output:
        return "密码修改成功"
    else:
        return "密码修改失败"

def main():
    # 服务器列表
    servers = [
        {"hostname": "192.168.0.1", "username": "root", "password": "123456", "oldpwd": "oldpassword", "newpwd": "newpassword1"},
        {"hostname": "192.168.0.2", "username": "root", "password": "123456", "oldpwd": "oldpassword", "newpwd": "newpassword2"},
        {"hostname": "192.168.0.3", "username": "root", "password": "123456", "oldpwd": "oldpassword", "newpwd": "newpassword3"}
    ]

    # 创建excel表格
    workbook = Workbook()
    sheet = workbook.active
    sheet.title = "修改结果"
    sheet.append(["服务器", "用户名", "旧密码", "新密码", "修改结果"])

    # 执行批量修改密码
    for server in servers:
        result = change_password(server["hostname"], server["username"], server["password"], server["oldpwd"], server["newpwd"])
        sheet.append([server["hostname"], server["username"], server["oldpwd"], server["newpwd"], result])

    # 保存excel表格
    workbook.save("password_change_result.xlsx")


if __name__ == "__main__":
    main()

在上述代码中,我们首先定义了一个change_password函数来实现密码修改功能。在该函数中,我们借助于paramiko库实现ssh连接,使用passwd命令修改密码,并返回修改结果。

同时,我们在main函数中定义了一个包含多个服务器的字典列表,并构建了一个名为“修改结果”的excel表格来记录每台服务器的修改结果。接着我们使用for循环对每台服务器进行修改密码的操作,并将结果写入excel表格中。

3. 运行Python脚本

在完成Python脚本的编写后,我们可以通过以下命令运行脚本:

python password_change.py

其中,password_change.py为我们编写的Python脚本的文件名。

运行完成后,我们将会得到一个名为“password_change_result.xlsx”的excel表格文件,该文件记录了每台服务器的密码修改结果。

以下是两个示例说明:

示例1:

假设我们要修改三台服务器的密码,分别是:

    服务器1:IP地址为192.168.0.1,用户名为root,旧密码为oldpassword,新密码为newpassword1;
    服务器2:IP地址为192.168.0.2,用户名为root,旧密码为oldpassword,新密码为newpassword2;
    服务器3:IP地址为192.168.0.3,用户名为root,旧密码为oldpassword,新密码为newpassword3。

我们可以将这些服务器信息添加到上述代码中的servers列表中,并根据需要修改旧密码和新密码。

示例2:

假设我们要将服务器的密码修改为随机生成的密码,我们可以利用string模块生成一组随机的密码,如下所示:

import random
import string

def random_password(length):
    return ''.join(random.choices(string.ascii_letters + string.digits, k=length))

# 随机生成一个长度为8的密码
new_password = random_password(8)

在程序中,我们构建了一个random_password函数,该函数接收一个整数参数length,并随机生成一个由大小写字母和数字组成的长度为length的密码。我们可以在调用change_password函数时将new_password变量传递给newpwd参数,以实现批量随机生成密码的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现linux服务器批量修改密码并生成execl - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • PIP安装python包出现超时问题的解决

    下面来分享“PIP安装python包出现超时问题的解决”的完整攻略: 问题描述 在使用pip安装Python包时,常常会出现超时(Timeout)的错误提示,例如: Collecting pandas Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) …

    python 2023年5月14日
    00
  • 图文详解Python中如何简单地解决Microsoft Visual C++ 14.0报错

    图文详解Python中如何简单地解决Microsoft Visual C++ 14.0报错 在使用Python的过程中,有时会遇到Microsoft Visual C++ 14.0报错的问题。这个问题通常是由于缺少Microsoft Visual C 14.0的编译器导致的。本文将详细讲解如何简单地解决这个问题,包括安装Microsoft Visual C …

    python 2023年5月13日
    00
  • Python 语言实现六大查找算法

    下面是关于“Python语言实现六大查找算法”的完整攻略。 1. 六大查找算法 六大查找算法是指顺序查找、二分查找、插值查找、斐波那契查找、树表查找和哈希查找这六种常用的查找算法。这些算法是计算机科学中最基本的算法之一,也是Python开发者必须掌握的算法之一。 2. 算法实现 下面是使用Python实现六大查找算法的完整代码。 2.1 顺序查找 def s…

    python 2023年5月13日
    00
  • 如何在 Redis 中使用 Lua 脚本实现延迟队列?

    以下是详细讲解如何在 Redis 中使用 Lua 脚本实现延迟队列的完整使用攻略。 Redis 延迟队列简介 Redis 延迟队列是一种常见的消息队列,用于实现延迟任务。Redis 延迟队列常使用有序集合(Sorted Set)实现,其中任务的执行时间作为有序集合的分数,任务的内容作为有序集合成员。 Redis Lua 脚本实现延迟队列 在 Redis 中,…

    python 2023年5月12日
    00
  • python scipy 稀疏矩阵的使用说明

    下面是关于“pythonscipy稀疏矩阵的使用说明”的完整攻略。 简介 稀疏矩阵指的是矩阵中大量元素为零的情况,对于这种情况我们可以使用稀疏矩阵来进行优化,从而节省存储空间与提高计算效率。在 Python 中,SciPy 提供了稀疏矩阵的处理方法,包括 CSR,CSC,DIA,COO,BSCOE 和 LIL 等稀疏矩阵格式。下面将介绍这其中部分的使用方法。…

    python 2023年5月13日
    00
  • Python编程之基于概率论的分类方法:朴素贝叶斯

    下面是详细讲解“Python编程之基于概率论的分类方法:朴素贝叶斯”的完整攻略。 1. 什么是朴素贝叶斯? 朴素贝叶斯是一种基于概率论的分类方法,它假设特征之间相互独立,从而简化了计算。朴素贝叶斯分类器通常用于文本分类、垃圾邮件过滤、情感分析等领域。 2. Python实现朴素贝叶斯的方法 2.1 朴素叶斯分类器 下面是Python使用朴素贝叶斯分类器实现文…

    python 2023年5月14日
    00
  • 基于python实现文件加密功能

    下面我将详细讲解“基于python实现文件加密功能”的完整攻略。 前提条件 在实现文件加密功能前,需要提前了解以下知识点: Python基础知识 文件的读写操作 密码学相关知识 实现过程 1. 生成密钥 要实现文件加密的功能,首先需要生成密钥。在这里,我们采用AES对称加密算法,并使用pycryptodome库来实现。 from Crypto.Cipher …

    python 2023年5月20日
    00
  • Python字符串逐字符或逐词反转方法

    要实现字符串逐字符或逐词反转的功能,Python字符串提供了不同的方法。下面是这些方法的详细说明和示例: 字符串逐字符反转方法 Python字符串是不可变性的,无法对其进行直接修改。但是,我们可以通过新建一个字符串来实现字符串的逐字符反转。具体步骤如下: 使用字符串切片 [::-1] 反转字符串。 string = "abcdefg" r…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部