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处理json数据中的中文
Mar 06 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python批量处理文件或文件夹
Jul 28 Python
Python 内置变量和函数的查看及说明介绍
Dec 25 Python
如何基于python测量代码运行时间
Dec 25 Python
python3读取csv文件任意行列代码实例
Jan 13 Python
python安装及变量名介绍详解
Dec 12 Python
Python 的 f-string 可以连接字符串与数字的原因解析
Feb 20 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 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
php二维数组排序详解
2013/11/06 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
拖拉表格的JS函数
2008/11/20 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
python文本数据相似度的度量
2018/03/12 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python tkinter label 更新方法
2018/10/11 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
django 读取图片到页面实例
2020/03/27 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
技能比赛获奖感言
2014/02/14 职场文书
商务日语专业自荐信
2014/04/17 职场文书
应届生求职信范文
2014/05/26 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
防汛通知
2015/04/25 职场文书
导游词之吉林花园山
2019/10/17 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书