学习python自动化运维第一天自己总结的作业

所使用到知识:
json模块,用于数据转化
sys.exit 用于中断循环退出程序
字符串格式化.format
字典、文件打开读写
with open(file,“rw”) as f:
  f.redad/write
if:循环
elif:
else:
while:循环

主要想实现目的:
1.系统默认admin超管用户.超管用户能实现:
  1).查看黑名单用户
  2).使用admin注册新的用户到白名单
  3).解除黑名单的指定用户
2.用户输入用户名输入3次错误后,锁定最后登录的用户
3.用户名输入正确,但是密码输入错误3次自动退出程序 4.白名单默认用户:hujianli 密码:admin#123
         huxiaojian 密码:admin#123
         xiaofei 密码:admin#123 输入白名单用户登录成功报欢迎界面.提供url资料
5.每次输入用户,首先检测黑名单.在黑名单里面就自动报错.需要解除锁定
6.自动在同级目录下创建3个文件:分别是: 白名单目录\黑名单目录\admin超管目录 ==== 没有数据库用本地文件代替,肉有数据库,需要将信息存到数据库

# -*- coding: utf-8 -*-
__author__ = 'hujianli'
import json,os,sys
super_admin = "该程序为了防止用户记不住密码,初始了一个超管用户,超管用户admin,密码联系管理员询问:"
name = "请您输入注册后登录网页程序的用户名:"
passwd = "输入登录用户名所对应的密码: " """ =====================普通用户登录板块======================== """
wellcome_jm = """\t恭喜您登录到本系统,用户名:{},密码{}.登录成功.请您牢记用户名密码, \n
送您一个链接地址: 网盘更新下载地址: http://pan.baidu.com/s/1sjsFrmX
github更新下载地址: https://github.com/liquanzhou/ops_doc """ """ ===============超管用户和白名单用户的创建=========="""
admin_file = "admin.json"
bmd_file = "baimingdan.json"
Hmd_file = "heimingdan.txt"
user_admin = {"admin": "123.com"} # 创建超管用户名称和密码 baimingdan = {"hujianli": "admin#123",
"huxiaojian": "admin#123",
"xiaofei": "admin#123"} # 普通登录用户 默认3位 if not os.path.isfile(admin_file):
with open(admin_file, "wt") as f:
json.dump(user_admin, f) if not os.path.isfile(bmd_file):
with open(bmd_file, "wt") as f:
json.dump(baimingdan, f) if not os.path.isfile(Hmd_file):
with open(Hmd_file, "wt") as f:
f.write("") # 存储超管用户的用户和密码
with open("admin.json", "r") as f:
date = json.load(f)
date_keys = "".join(date.keys())
date_values = "".join(date.values()) # 存储白名单的用户和密码
userlist =[]
passwdlist = []
with open("baimingdan.json", "r") as f:
date_bmd = json.load(f) #存储黑名单用户名和密码
with open("heimingdan.txt", "r") as f:
heimingdan = f.read().strip("\n") """ ======================admin板块======================="""
def admin_mb():
# cazuolist = []
quanxian = """
(1)>>> 查看黑名单用户\t input:1
(2)>>>使用admin注册新的用户\t input:2
(3)>>>解除黑名单的指定用户\t input:3\n""" admin_jm = """ 欢迎来到超级管理人登录界面,登录名admin,密码[],您可以有如下权限: \n%s\n""" % (quanxian)
print(admin_jm)
caozuo = int(input("请选择您的操作:"))
if caozuo == 1:
print(heimingdan) elif caozuo == 2:
add_user = input(name)
add_passwd = input(passwd) with open(bmd_file,"r") as f:
add_info = json.load(f) if add_info[add_user] not in add_info.keys():
add_info[add_user] = add_passwd
with open(bmd_file,"a") as f:
json.dump(add_info,f)
else:
print("此用户已经存在,请勿重复创建%s!!!"% add_user) elif caozuo == 3:
print("解除黑名单的指定用户,这个还没时间写,写法通过删掉黑名单的key和vlan实现")
sys.exit("退出```````")
else:
"error======"
pass count = 0
while count <3:
count +=1
username = input(name)
with open(Hmd_file) as f:
heimingdan = f.readlines()
for lock_name in heimingdan:
lock_name = lock_name.strip("\n")
if username == lock_name:
sys.exit('=======WARNING:该账号 %s 已经被冻结========' % username) if len(username) == 0 :
print("\033[1;31m用户名不能为空,错误操作\033[0m")
continue #处理admin用户
if username == date_keys:
i = 0
while i <3:
i +=1
passwd_of_user = input(passwd)
if passwd_of_user == date_values:
admin_mb()
else:
if i !=3:
print('密码 %s 错误,请好好想想密码,生日或者身份证号码,还有 %d 次机会' % (passwd_of_user,3 -i))
else:
sys.exit("Sorry,健力提醒:由于您密码输入错误太多,只能退出程序..!!")
# 处理白名单用户
for key, value in date_bmd.items():
if username == key:
i = 0
while i <3:
i +=1
passwd_of_bmd_user = input(passwd)
if passwd_of_bmd_user == value:
print("===============================================================================================")
print("========================================普通用户使用平台========================================")
print("===============================================================================================")
print(wellcome_jm.format(username, passwd_of_bmd_user))
break
else:
if i !=3:
print('密码 %s 错误,请好好想想密码,生日或者身份证号码,还有 %d 次机会' % (username,3 -i))
else:
sys.exit("Sorry,健力提醒:由于您密码输入错误太多,只能退出程序..!!") else:
count !=3
print("用户输入错误,还有 %d 次机会"%(3-count)) else:
with open(Hmd_file,"a+") as f:
f.write(username + "\n")
sys.exit("用户%s 达到最大登录次数,请联系超级管理员admin!!' " % username) # dict_heimingdan = {}
# for i in range(1):
# name = input(BMD_user)
# password = input(BMD_passwd)
# if name not in dict_heimingdan.keys():
# dict_heimingdan[name] = password
#
# with open("heimingdan.json", "wt") as f:
# json.dump(dict_heimingdan, f)

python自动化运维学习第一天--day1的更多相关文章

  1. Day1 老男孩python自动化运维课程学习笔记

    2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...

  2. Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

    内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...

  3. python自动化运维之CMDB篇-大米哥

    python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ  ...

  4. 【目录】Python自动化运维

    目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...

  5. python自动化运维篇

    1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...

  6. Python自动化运维的职业发展道路(暂定)

    Python职业发展之路 Python自动化运维工程 Python基础 Linux Shell Fabric Ansible Playbook Zabbix Saltstack Puppet Dock ...

  7. Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...

  8. python自动化运维之路~DAY5

    python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...

  9. python自动化运维八:Ansible

    Ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控 ...

随机推荐

  1. flask-login ----系统权限设计部分小结

    tips: 事实证明.开发是一项苦力活.但是代码只有自己写的才是令人感到放心的.不过仅仅是从开发角度来说.从维护和安全角度来说,当然还是引入模块比较爽 但是引入的模块总会有一些问题.碰到的最大问题就是 ...

  2. 如何用C#完成控制台日历?

    本题目的最终要就是根据用户输入的年和月在控制台输出单月的日历信息,附加范围年在1900-2100之间,月的范围在1-12之间,当用户输入不在范围时要给予错误信息提示:已知条件是1900年1月1日为星期 ...

  3. Javascript性能优化之节流函数

    在我们的工作中往往有这样的需求,下拉上拉加载实现无限加载列表数据这样的一个功能,这个时候小伙伴们可能就觉得这个功能几分钟的事,于是乎,下边这段代码浩浩荡荡就出来了 window.addEventLis ...

  4. 基于TypeScript的FineUIMvc组件式开发(概述)

    WebForm与Mvc 我简单说一下WebForm与Mvc,WebForm是微软很早就推出的一种WEB开发架构,微软对其进行了大量的封装,使开发人员可以像开发桌面程序一样去开发WEB程序,虽然开发效率 ...

  5. 4.Java 加解密技术系列之 HMAC

    Java 加解密技术系列之 HMAC 序 背景 正文 代码 结束语 序 上一篇文章中简单的介绍了第二种单向加密算法 — —SHA,同时也给出了 SHA-1 的 Java 代码.有这方面需求的童鞋可以去 ...

  6. 编写原生Node.js模块

    导语:当Javascript的性能需要优化,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...

  7. 第40篇 使用Sublime+MarkDown快速写博客

    原文地址:http://blog.laofu.online/2017/06/03/how-use-sublime/ 前端的开发人员应该都知道sublime的神器,今天就说说如何使用sublime结合m ...

  8. (转)wxWidgets 2.9.2svn(3.x)最小体积编译方法

    官方论坛.网上记录的wxWidgets编译方法,会导致编译后的程序库非常大,原因在于对编译的方法选择不当.下面简单总结一下如何编译最新的SVN代码.下载最新源码(每日构建):http://biolpc ...

  9. java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

    首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开 ...

  10. Xamarin开发笔记—WebView双项事件调用

    1.Xamarin调用WebView: 原理:Xamarin.Forms WebView内置方法xx.Eval(..)可以调用到页面里面的js函数. WebView展示的代码如下: var htmlS ...