对于“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技术站