面试题集
1、集合的差、并、交集等
X & Y :取出X、Y都存在的值
X | Y :取出X、Y的并集
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。X - Y :取出在X中不在Y中的值
X ^ Y :取出在X或在Y中,但是不会同时出现在二者中的值
2、正则匹配:
[^...] 匹配不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符
\w:匹配字母数字及下划线
\s:匹配任意空白字符,等价于 [\t\n\r\f]
\d:匹配任意数字,等价于 [0-9]
?P:r"/(?P<h1>\d*)/(?P<h1>\d*)"
group用于把匹配结果分组
用法:re.match().group()
匹配IP地址:
模糊匹配:r'^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$' ?: 意思是()内的内容只匹配不返回
r'^(?:(?:25[0-5]?|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
匹配8-10用户密码:
^[a-zA-Z]\w{7,10}$
验证输入只能是汉字:
^[\u4e00-u9fa5]{0,}$
匹配电子邮箱验证:
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
[\w]+(\.[\w]+)*@[\w]+(\.[\w])+
URL地址验证:
^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
匹配标签内容:
<li>([^<]+)</li>
3、url请求流程
页面进行DNS解析(找到目标服务器IP地址),建立连接(tcp3次握手),发送请求,nginx把请求发给uwsgi(作用是把nginx发过来的数据转换成Django或flask能识别的数据,uwsgi是二进制协议,传过来的是二进制数据),通过Django中的路由找到Django中的视图函数,如果返回的是一个页面则去template模板中找这个页面并返回,如果需要数据就去数据库中去数据,返回给浏览器,浏览器进行页面的渲染。
4、dockerfile
Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile
中的指令自动生成映像。
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
5、审批流转流程
流程表:
流程的名称
流程的描述
流程的备注
流程的类型id
流程的审批状态
流程类型表:
流程的状态
流程的名称(类型)
流程的类型id
流程流转信息表:
流程节点(流程流转到了那个节点)
申请源、申请人
申请的信息
申请的类别(申请的流程的类型)
变换的结果(审核未通过等)
处理信息(审核信息,审核人添加)
处理人(审核人)并指定下一个审核人
流转信息的状态
流程流转表:
审核人id
下一个审核人id
流转结果
1、首先通过一个接口来传递具体的一些申请信息
2、通过接口的getType()来确定是哪个流程
3、查询到开始的流程节点
4、将开始的信息保存到流转信息中,并等待处理(开始信息申请id,申请的类型,得到变换条件,描述,申请的审批人)
5、由审核人处理指定下一个审核人
6、通过处理结果来获得下一个流程节点
7、查找下一个节点
8、将这次的处理信息和下一个节点的信息保存到流转信息中,并等待处理
9、由审核人处理,这样一直循环知道流程结束
10、通过审核信息查找的下一个节点为null,则表示此流程已经结束
11、将结束的信息,保存到流程流转信息中。
12、将整个流程流转的状态改为已结束
6、写一个类,实例化可以实现'+'运算符
class Class_plus: def __init__(self, num): self.num = num def __add__(self, other): return Class_plus(self.num + other.num) def __sub__(self, other): return Class_plus(self.num - other.num) def intro(self): return self.num a = Class_plus(2) b = Class_plus(3) c = a + b print(c.intro())
7、centos下检测损坏的磁盘并修复
badblocks -s -v -o /root/bb.log /dev/sda 将结果保存到bb.log
逻辑坏道修复方法
①、badblocks -s -w /dev/sda END START (END代表需要修复的扇区末端,START代表需要修复的扇区起始端)
②、fsck -a /dev/sda
修复后再用badblocks -s -v -o /root/bb.log /dev/sda监测看是否还有坏道存在,如果坏道还是存在的话说明坏道属于硬盘坏道。硬盘坏道要用隔离方法,首先记录监测出的硬盘坏道然后分区的时候把硬盘坏道所在的扇区分在一个分区(大小一般大于坏扇区大小),划分出的坏道分区不使用即可达到隔离的目的
0磁道坏道和硬盘坏道(准备换硬盘)
0磁道坏道的修复方法是隔离0磁道,使用fdsk划分区的时候从1磁道开始划分区。
如果是硬盘坏道的话,只能隔离不能修复
8、关于列表切片
lst = [1,2,3,4,5]
lst[10:] # 结果为 []
