自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 收藏
  • 关注

原创 Docker容器技术学习(1)-----docker简介

1.什么是docker?Docker是管理容器的引擎,为应用打包、部署平台,而非单纯的虚拟化技术。2.容器和虚拟机的区别:传统虚拟化与容器技术对比:虚拟机docker容器操作系统宿主机上运行虚拟机OS共享宿主机OS存储镜像较大(GB)镜像小(MB)性能操作系统额外的cpu、内存消耗几乎无性能损耗移植性笨重、与虚拟化技术耦合度高轻量、灵...

2020-04-12 00:10:32 229

原创 varnish----02

varnish进程的工作模式varnish启动会产生两个进程,manager主(管理managerment)进程,然后fork一个worker子进程。manager进程作用: 读入(更新)配置,vcl文件编译,varnish监控,初始化varnish及提供varnish管理接口。management进程会每隔几秒钟探测一下child进程以判断其是否正常运行,如果在指定的时长内未得到child进...

2020-03-06 00:46:44 161

原创 varnish-----01

什么是Varnish?Varnish是一个反向HTTP代理,有时称为HTTP加速器或web加速器;Varnish将文件或文件片段存储在内存中,使它们能够快速被提供;Varnish本质上是一个键/值存储,它通常使用URL作为键;Varnish是为现代硬件、现代操作系统和现代工作负载而设计的。HTTP协议internet的基本协议是TCP/IP协议栈(传输控制协议和网际协议),目前广泛...

2020-03-05 02:15:34 163

原创 什么是负载均衡

为什么需要负载均衡我们生活中经常免不了要去一些比较拥挤的地方,无论是买票还是排队入场,这些场所一般都会设置多个服务点或者入口。如果没有人引导的话,大多数情况下,最近的人口会挤满人,在这种情况下就会大大浪费资源因为如果可以把这些排队的人很好的分散到各个入口的话会大大缩短排队时间。其实,网站的建设也是一样的,为了提升网站的服务能力,很多网站采用集群部署,就像话剧院有很多入口一样。这时,就需要一个协调...

2020-02-24 17:38:41 945

原创 虚拟机的封装

1.安装rhel7虚拟机;2.选择最小化安装,自动分区;3.修改ip地址vim /etc/sysconfig/network-scripts/ifcfg-eth0BOOTPROTO=stiticDEVICE=eth0ONBOOT=yesIPADDR=172.25.0.1PREFIX=24修改网卡名不是eth0的vim /boot/grub2/grub.cfg99 linux...

2020-02-24 16:43:33 91

原创 网站架构

网站架构发展历程初始阶段的网站:应用程序、数据库、文件都在一个服务器。应用服务和数据服务分离随着网站业务的发展,一台服务器逐渐不能满足需求:性能越来越差,存储空间不足,这时就需要应用和数据分离。应用服务器1.处理大量业务;2.需要更快更强的CPU。数据库服务器1.需要快速磁盘检索;2.需要更快的硬盘和更大的内存。文件服务器1.要存储大量用户上传文件;2.需要更大的磁盘。...

2020-02-20 01:50:45 108

原创 shell----变量04----设定变量属性

declare和typeset都是shell内建命令,它们的用法相同,都是用来设置变量的属性,不过typeset以境内被弃用了,建议使用declare代替。将多个变量声明为整数vim 08.shsh 08.sh设定只读变量declare -r n=10n=20...

2020-02-19 17:06:40 216

原创 shell----变量03----删除变量、设定只读变量

从内存中取消变量:unset test #从内存中删除变量echo $test脚本中删除变量删除后不能再次使用vim 06.shsh 06.sh设定只读变量设定只读变量不能用unset删除vim 07.shsh 07.sh设定只读变量不能更改...

2020-02-19 16:58:00 195

原创 shell-----变量02

引用变量时单双引号的区别vim 05.shsh 05.sh从执行结果来看,单引号括起来的变量,写的是什么内容,输出的就是什么内容,即单引号是强制引用;以双引号括起来的内容,它会先解释括起来的变量或命令。把一个变量的结果赋值给另一个变量,再输出这个变量把一个命令的输出结果的值让变量去引用。1.使用反引号来把一条命令赋值给一个变量:vim 06.txt #建立一个文件cat 06...

2020-02-19 16:35:19 71

原创 shell----shell脚本的编译器

shell脚本是给解释器运行的,那么当前系统有哪些解释器?which sh #sh是系统原始装好的编译器查看系统提供的shell编译器版本cat /etc/shells系统提供了很多版本的shell,也提供了很多版本的shell编译器,就像python编译器中有python2还有python3,系统也为shell脚本提供不同版本的编译器,但是红帽linux系统默认的编译器是bash...

2020-02-18 23:20:38 2784

原创 shell----定义变量

[root@foundation64 mnt]# vim 05.sh[root@foundation64 mnt]# sh 05.sh[root@foundation64 mnt]# vim 06.sh[root@foundation64 mnt]# sh 06.sh[root@foundation64 mnt]# vim 07.sh[root@foundation64 mn...

2020-02-18 16:37:59 260

原创 shell----shell脚本的运行

定义一个shell脚本并运行定义一个shell脚本:vim 01.sh运行脚本:sh 01.sh #运行shell脚本运行结果:shell脚本运行的两种方法一种是在新进程中运行;一种是在当前shell进程中运行。vim 02.sh运行脚本方法:sh 02.sh #在新的进程里运行脚本ls -l 02.sh #查看权限chmod +x 02.sh #加执行权限...

2020-02-18 16:30:26 246

原创 认识shell

shell是什么?现在使用的操作系统(Windows、Mac、Android、ios等)都是带有图形界面的,简单直观,容易上手,对专业用户和普通用户都非常使用,计算机的普及离不开图形界面。然而,在计算机早期并没有图形界面,我们只能通过一个一个命令来控制计算机,这些命令有成百上千之多,记住这些命令非常困难,而且每天面对没有任何色彩的电脑本身就是一件枯燥的事;这个时候的计算机还远远谈不上炫酷和普...

2020-02-12 22:06:16 136

原创 数据库

安装数据库yum install mariadb.x86_64 mariadb-server.x86_64 -y添加数据库模块:cd /home/kiosk/PycharmProjects/py/venv/bin/./pip3 install pymysql建立数据库信息mysql_secure_installation--->初始化数据库mysql -uroot -p...

2020-01-11 21:26:49 91

原创 有关多个装饰器的练习

编写装饰器required_types, 条件如下:1). 当装饰器为@required_types(int,float)确保函数接收到的每一个参数都是int或者float类型;2). 当装饰器为@required_types(list)确保函数接收到的每一个参数都是list类型;3). 当装饰器为@required_types(str,int)确保函数接收到的每一个参数都是str或者in...

2020-01-11 18:58:06 58

原创 带参数的装饰器

import timeimport functoolsdef log(kind): def add_log(func): @functools.wraps(func) def wrapper(*args,**kwargs): start_time = time.time() res = func(*ar...

2020-01-11 18:45:10 231

原创 使用装饰器计算所有整数的和

编写装饰器required_ints, 条件如下:1). 确保函数接收到的每一个参数都是整数;2). 如果参数不是整形数, 打印 TypeError:参数必须为整形import functoolsdef required_ints(func): @functools.wraps(func) def wrapper(*args,**kwargs): # (1,2,....)...

2020-01-11 18:42:24 157

原创 多个装饰器实现信息的登录

import functoolsimport inspectlogin_session=['root','admin','redhat']def is_login(fun): @functools.wraps(fun) def warapper(*args,**kwargs): if args[0] in login_session: ...

2020-01-11 18:38:12 78

原创 装饰顺序

装饰顺序:组装装饰器时,就近原则,从下往上装饰执行顺序:就远原则,从上往下调用先进入离test函数最近的装饰器,由于装饰器中返回的是函数的函数名引用,并非真正的调用函数;到inner2后,func会真正的执行函数,会调用inner1;到inner1中,func会调用test函数;再从各个函数出来def wrapper_out1(func): print('----out11-...

2020-01-11 14:04:39 85

原创 创建装饰器,打印日志信息

创建装饰器, 要求如下:创建add_log装饰器, 被装饰的函数打印日志信息;日志格式为: [字符串时间] 函数名: xxx, 运行时间:xxx,运行返回值结果:xxximport timeimport functoolsdef add_log(func): @functools.wraps(func) def wrapper(*args,**kwargs):...

2020-01-11 13:58:32 937

原创 装饰器实现函数计数器

装饰器实现一个函数计时器1.被装饰的函数有返回值怎么办2.如何保留被装饰函数的函数名和帮助信息文档python的内置类属性:当创建一个模块之后,系统就自带了一些属性,叫内置类属性。python中的模块通常会定义很多变量和函数,这些变量和函数相当于模块中的一个功能,模块被导入到别的文件中,可以调用这些变量和函数。_name_可以标示模块的名字,_cod_可以标示模块的文档字符串。impo...

2020-01-11 13:51:17 463

原创 关于装饰器的小练习

# 年龄不能大于0,如果输入的年龄为负数,不规范,则输出0# 如果年龄输入规范,则输出年龄def outer(f):#装饰器 def inner(age): if age <=0: age = 0 f(age)#装饰器的输出结果 return inner@outer#语法糖def say(age): pr...

2020-01-11 13:23:07 68

原创 装饰器

函数的小练习# 输入一个数字,输出与1相加的结果def add_one(number): return number + 1a = add_one(2)#调用函数print(a)函数可以作为参数被传递def say_hello(name): return f"Hello {name}"def be_some(name): return f"Your {...

2020-01-11 13:11:24 94

原创 eval内置函数

exal( )函数用来执行一个字符串表达式,并返回表达式的值。语法:eval(expression[,globals[,locals]])expression表达式globals变量作用域,全局命名空间,如果被提供,则必须是一个字典对象locals变量作用域,局部命名空间,如果被提供,可以是任何映射对象字符串转换成列表a = "[[1,2],[...

2020-01-11 12:08:54 179

原创 try语句练习

录入学生信息的系统;对录入的信息进行校验: 1). len(姓名)>2 2). 18<age<25用户可以一直输入数字, 当按ctrl+c之后计算所有数的和;

2020-01-11 11:26:04 324

原创 try语句练习

提示用户输入密码def input_passwd(): # 1.提示用户输入密码 pwd=input('请输入密码:') # 2.判断密码长度 密码长度必须是8位或8位以上 if len(pwd)>=8: return pwd # 3.如果密码长度<8,就主动抛出异常 # 创建异常对象 ex=Exception...

2020-01-09 20:50:18 174

原创 函数的错误异常

函数的错误:一级一级向上去找,最终会将异常传递到主函数里面去def demo1(): try: return int(input('请输入正确的整数:')) except Exception as r: print('未知错误 %s' %r)def demo2(): return demo1()print(demo2())...

2020-01-09 20:32:20 661

原创 try/except/else语句练习

除法运算:try:#运行代码 num=int(input('Num:')) result=8/num print(result)except ZeroDivisionError:#如果在try部分引发了ZeroDivisionError异常 print('0不能做除数')# except ValueError:#如果在try部分引发了ValueError异常...

2020-01-09 19:49:49 196

原创 异常处理---try语句

异常处理----try语句当认为某些代码可能会出错时,就可以用try语句来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块。try语句格式try: <语句>#运行别的代码except <名字>: <语句>#如果在try部分引发...

2020-01-09 19:05:53 1364

原创 常见的异常

变量不存在print(a)被除数不能为0print(10/0)3. 字符串异常str = 'hello'print(str[10])4.d = dict(a=1,b=2)d = { 'a':1, 'b':2}print(d.get('c','key不存在'))print(d.get('c'))print(d['c'])...

2020-01-09 19:04:29 56

原创 table的应用

python通过PrettyTable模块可以将输出内容如表格方式整齐的输出。python操作数据库会经常用到此模块。from prettytable import PrettyTablefield_names = ("ID",'名字','英语成绩','Python成绩','C语言成绩')table = PrettyTable(field_names=field_names)print...

2020-01-09 11:17:20 360

原创 re模块

替换:字符串中的某个元素的替换可以通过replace实现。inputStr = 'hello 123 world 456'replaceStr = inputStr.replace('123','222')#将inputStr中的‘123’替换为‘222’print(replaceStr)如果想把所有123、456都替换成222,则replace实现不了了,这时候需要re.sub正则表...

2020-01-09 11:08:37 58

原创 linux文件之间的对比

在做此实验时,首先复制一个passwd文件,改变其中一个文件,使两个文件不同。import difflibfilename1 = '/test/passwd'filename2 = '/test/passwd1'with open(filename1) as f1,open(filename2) as f2: content1 = f1.read().splitlines(kee...

2020-01-09 10:47:29 140

原创 difflib模块之文本对比

相关知识点1. 什么是difflib? 用来做什么?difflib为python的标准库模块,无需安装。作用是对比文本之间的差异。并且支持输出可读性比较强的HTML文档,与Linux下的diff命令相似。在版本控制方面非常有用。2. 符号理解符号含义‘-’包含在第一个系列行中,但不包含第二个。‘+’包含在第二个系列行中,但不包含第一个。...

2020-01-09 10:40:30 101

原创 应用案例----系统的监控

需求:获取当前主机信息, 包含操作系统名, 主机名,内核版本, 硬件架构等获取开机时间和开机时长;获取当前登陆用户import osimport psutilfrom datetime import datetimeprint('主机信息'.center(50,'*'))info = os.uname()print(""" 操作系统:%s 主机名称:%s ...

2020-01-09 09:49:55 72

原创 datetime模块

from datetime import datefrom datetime import datetimeprint(date.today()) # 今天的日期print(datetime.now()) # 当前的具体时间** 如果计算三天前的时间和三天后的时间**from datetime import datefrom datetime import timedelta...

2020-01-09 00:36:00 63

原创 常用时间之间的转换

import timeimport os# 把元组时间转换成时间戳tuple_time=time.localtime()#元组时间print(tuple_time)print(time.mktime(tuple_time))# 把元组时间转化为字符串时间print(time.strftime('%d-%m',tuple_time))#天-月print(time.strftime('...

2020-01-09 00:22:51 270

原创 时间模块

时间表示的几种形式1.时间戳2.字符串时间3.元组类型的时间import osimport time# 1.时间戳print(time.time())#获得一个时间戳,距离1970年以来多少秒# 2.字符串时间print(time.ctime())# 3.元组时间print(time.localtime())info = time.localtime()print(...

2020-01-09 00:18:25 61

原创 os.path

利用time.time()方法,我们可以计算两个时间点之间的时间间隔,但是有些时候我们想要得到/etc/group文件的最后m/a/c/time的时间,对应的年月日这些信息并保存再文件date.txt文件中import osimport timetime1 = os.path.getctime('/etc/group')#返回文件创建时间print(time1)tuple_time...

2020-01-09 00:10:16 142

原创 有关os模块的练习

在当前目录新建目录img, 里面包含多个文件,文件名各不相同(X4G5.png)将当前img目录所有以.png结尾的后缀名改为.jpgimport stringimport os# 定义一个函数:生成目录名称def gen_code(len=4): # 随机生成四位随机数 由字符串+数字组成 li = random.sample(string.ascii_lette...

2020-01-08 23:30:26 174

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除