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

对于“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日

相关文章

  • Python自定义函数的创建、调用和函数的参数详解

    Python自定义函数的创建、调用和函数的参数详解 1. 函数的创建 Python自定义函数的创建非常简单,只需要用def关键字定义函数,后面跟着函数的名称和参数列表,最后用冒号结束函数定义。函数体中的代码需要缩进。 def my_function(): print("Hello World!") my_function() # 调用函数…

    python 2023年6月5日
    00
  • 如何在命令行上传递参数而不在python中使用标志

    【问题标题】:How to pass parameters on command line without using flags in python如何在命令行上传递参数而不在python中使用标志 【发布时间】:2023-04-03 13:03:02 【问题描述】: 所以我有我的 main.py 脚本,它基本上将根据命令行上传递的内容运行某些条件语句。例…

    Python开发 2023年4月8日
    00
  • Python 使用input同时输入多个数的操作

    当我们需要输入多个数的时候,可以使用Python的input()函数结合字符串分割操作来实现。下面是具体的操作步骤: 使用input()函数接收一个字符串信息,提示用户输入多个数,并且使用空格隔开。 input_str = input("请使用空格隔开输入多个数:") 利用字符串的split()函数将输入的字符串数据转化为一个数值列表(l…

    python 2023年5月18日
    00
  • 我用Python给班主任写了一个自动阅卷脚本(附源码)

    我用Python给班主任写了一个自动阅卷脚本(附源码) 背景 在学校中,老师经常需要阅卷,这是一个重复的枯燥无味的工作,同时也容易出错。为了解放老师的时间,提高学生作业批改效率,我使用Python编写了一个自动阅卷脚本。 思路 脚本的基本思路如下: 读取作业答案; 读取学生作业; 对每一份学生作业进行自动批改; 计算总分和各类题目的得分; 将批改结果保存到文…

    python 2023年5月19日
    00
  • 构建 python 可执行文件(在 wxWidgets 中)以便可以从另一个 wxWidgets 应用程序调用它的正确方法?

    【问题标题】:Correct way to build python executable(in wxWidgets) so that it can be called from another wxWidgets application?构建 python 可执行文件(在 wxWidgets 中)以便可以从另一个 wxWidgets 应用程序调用它的正确方…

    Python开发 2023年4月8日
    00
  • Python Asyncio调度原理详情

    Python Asyncio是一种支持异步I/O编程的库,它解决了I/O密集型程序的性能问题。本攻略将详细介绍Asyncio的调度原理,并且提供两个示例以说明Asyncio的使用。 什么是Python Asyncio? Asyncio是Python标准库中的一个异步I/O框架,它在Python3.4版本中被引入,旨在提供基于协程的异步I/O编程方式。它通过使…

    python 2023年5月19日
    00
  • Python xlwings插入Excel图片的实现方法

    下面给出详细的Pythonxlwings插入Excel图片的实现方法的完整实例教程。本实例教程的具体实现方法为: 教程概述 本教程主要演示如何使用Python的xlwings库来在Excel表格中插入图片。包含以下内容: 安装Pythonxlwings 导入Pythonxlwings库 读取Excel表格 插入图片到Excel表格中 保存Excel表格 步骤…

    python 2023年5月13日
    00
  • Python获取昨天、今天、明天开始、结束时间戳的方法

    获取昨天、今天、明天开始、结束时间戳是Python中常用的操作,本文将详细讲解如何使用Python获取这些时间戳。 获取昨天、今天、明天的开始时间戳 通常我们把一天的开始时间定义为0点0分0秒,当然这个可以根据业务需求进行修改。Python中获取当前日期时间并构造成时间戳可以使用datetime和time两个模块。具体如下: import datetime …

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