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


Posted in Python onApril 22, 2014

批量修改linux服务器密码,同时生成execl表格

#!/usr/bin/env python
#coding:utf8
#随机生成自定义长度密码
from random import choice
import string,pickle
def GenPassword(length=8,chars=string.ascii_letters+string.digits):
    return ''.join([choice(chars) for i in range(length)])
def passlist(r_user,c_user,ip_list,web_list):
    dic={}
    for i in ip_list:
        if i.split()[1] in web_list:
            dic[i.split()[1]]=[i.split()[0],{r_user:GenPassword(32),c_user:GenPassword(32)}]
        else:
            dic[i.split()[1]]=[i.split()[0],{r_user:GenPassword(32)}]
    return dic
def ip_list(ip_file):
    with open(ip_file) as file:
        ip_file=file.read().strip().split("\n")
        #web_list=[i for i in ip_file if i in web_list]
        return ip_file
def save_dic():
    dic=main()
    with open("../host_message.pickle","w") as fd:
        pickle.dump(dic,fd)
def main():
    file="/root/cui/script/python/ip.txt"
    web_list=[ip1,ip2,ip3,ip4]
    file_list=ip_list(file)
    file_dic_pass=passlist("root","www",file_list,web_list)
    return file_dic_pass
if __name__=="__main__":
    save_dic()
#!/usr/bin/env python
#coding:utf8
#批量修改密码主程序
import pickle
from ssh_co.ssh_connect import sshd
from command.ip_passwd import save_dic,main
from execl import set_execl
def read_dic():
    with open("host_message.pickle","rb") as f:
        return pickle.load(f)
def ssh_main():
    pid_host=1
    host_message=read_dic()
    host_list=host_message.keys()
    print host_list
    for host_msg in xrange(len(host_list)):
        host_attribute=(host_list[host_msg],port,user,passwd)
        ssh_conn=sshd(host_attribute,pid_host)
        if "www" in host_message[host_list[host_msg]][1].keys():
            for username in xrange(len(host_message[host_list[host_msg]][1].keys())):
                try:
                    user=host_message[host_list[host_msg]][1].keys()[username]
                    passwd=host_message[host_list[host_msg]][1][host_message[host_list[host_msg]][1].keys()[username]]
                    results=ssh_conn.set_ssh_cmd(u"/bin/echo %s|/usr/bin/passwd --stdin %s" %(passwd,user))
                    print results,host_list[host_msg],user+"-----------"+passwd
                except:
                    print results,host_list[host_msg],user+"-----except------"+passwd
        else:
            user=host_message[host_list[host_msg]][1].keys()[0]
            passwd=host_message[host_list[host_msg]][1][host_message[host_list[host_msg]][1].keys()[0]]
            result=ssh_conn.set_ssh_cmd(u"/bin/echo %s|/usr/bin/passwd --stdin %s" %(passwd,user))
            print result,host_list[host_msg],user+"-----------"+passwd
if __name__ == "__main__":
    dic=main()
    with open("host_message.pickle","w") as fd:
        pickle.dump(dic,fd)
    set_execl()
    ssh_main()
Python 相关文章推荐
Python使用Socket(Https)Post登录百度的实现代码
May 18 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
简单理解Python中的装饰器
Jul 31 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
python字典排序的方法
Oct 12 Python
python3中rank函数的用法
Nov 27 Python
pandas数据拼接的实现示例
Apr 16 Python
Django多个app urls配置代码实例
Nov 26 Python
深度学习详解之初试机器学习
Apr 14 Python
python中精确输出JSON浮点数的方法
Apr 18 #Python
python中使用OpenCV进行人脸检测的例子
Apr 18 #Python
在python的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 #Python
Python操作json数据的一个简单例子
Apr 17 #Python
python使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 #Python
python调用windows api锁定计算机示例
Apr 17 #Python
python实现监控windows服务并自动启动服务示例
Apr 17 #Python
You might like
PHP4实际应用经验篇(1)
2006/10/09 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
发布你的Python模块详解
2016/09/15 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
使用Python封装excel操作指南
2021/01/29 Python
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
幼儿园长自我鉴定
2013/10/17 职场文书
学校募捐倡议书
2014/05/14 职场文书
小学领导班子对照材料
2014/08/23 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers