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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
Python读写zip压缩文件的方法
Aug 29 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
django-allauth入门学习和使用详解
Jul 03 Python
详解Django模版中加载静态文件配置方法
Jul 21 Python
python字典排序的方法
Oct 12 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
Python实现疫情地图可视化
Feb 05 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简单实现断点续传下载的方法
2015/09/25 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
Python 正则表达式(转义问题)
2014/12/15 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
公司周年庆典邀请函
2014/01/12 职场文书
幼师求职自荐信
2014/05/31 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
植物园观后感
2015/06/11 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
mysql中整数数据类型tinyint详解
2021/12/06 MySQL