考试时间 1 小时
本次周考涵盖一阶段知识点, 共计10道题, 每题10分, 不写全分全扣!!!
请写出请求体、响应体中含有的各个信息名称及其作用
#初始请求体
#请求体:封装了用户信息(用户名、令牌、密码等)
#请求头:由服务器规定,浏览器自带
#请求行:Method、URL、Version
#初始响应体
#状态行:包含一个状态码、Version
#响应头:给对应的请求头给予响应
#响应体:包含HTML、CSS、JavaScript、媒体文件等
生产环境中的某台机器报警磁盘容量即将打满, 但是进入机器中后查看df和du发现大小不一, 实际并没有占用那么大, 请简要描述出其原因和处理方案
xxxxxxxxxx
用户删除了仍在使用的文件,文件删除了但是文件句柄仍然保留,df命令统计文件句柄,du命令不会在文件系统目录中统计这些文件。
解决方法:使用lsof | grep deleted 命令查找到带有deleted标识符的进程PID,然后kill -1 PID 重启它,就恢复正常
命令:lsof | grep deleted | grep -v PID | awk '{ pid[$2]++ }END{ for(p in pid){ print "kill -1",p}}' | bash -
请概述出 用户访问baidu.com的整体流程和细节
xxxxxxxxxx
1、打开浏览器输入www.baidu.com后按回车
2、浏览器根据输入的url地址确定服务器的IP地址(使用DNS协议)
3、浏览器通过三次握手与服务器建立传输通道
4、浏览器开始构建请求体
5、服务器接收并识别请求体中的用户信息进行身份甄别
6、服务器根据URI判断是否包含对应的资源
7、如果不包含:返回带有错误状态码的响应体。如果包含:封装好对应的初始化响应体并按照接收路径向浏览器返回响应
8、用户看到网页界面
请写出Linux操作系统的开机启动顺序
xxxxxxxxxx
1加电
2加载bios设置
3加载grub
4加载内核系统到内存当中
5加载配置文件
6加载内核模块
7完成相应的初始化工作和启动相应的服务
8启动系统进程
9出现登录界面
10开机启动完成
请写出以下状态码的原因及解决方法 403 413 502 504
xxxxxxxxxx
400:请求报文中存在语法错误(URL写错了)-----客户端检查URL
401:认证信息不存在于请求头中(未认证)-----给用户返回让用户先登录
403:请求资源未找到or对访问的URI地址没权限-----让用户提升权限
404:请求资源未找到-----给用户返回请求资源未找到
413:请求体中的数据过大,服务端无法处理这么大的请求体-----调整吞包的上限,一般设置为256M
429:客户端短时间内发送了太多请求,被限制访问了-----减少发送请求的次数
431:请求体重的header头字段太大了,服务端无法处理这么大的头部信息-----调大请求头处理的上限
500:服务端中的代码存在bug-----让研发参与(修bug)
502:多指代理服务器的配置有问题-----检查nginx配置是否有问题、检查代理服务器和负载均衡器时候宕机,登陆上去启动它
504:多指代理得上游服务器错误,通常是代码执行超时、代码发生了死循环-----找到研发,让研发支持解决问题
503:服务器处于超负载or维护状态-----临时加配置
请统计出access.log日志中,访问量排名前十名的ip地址(要求使用awk的数组完成),请写出具体的命令
xxxxxxxxxx
awk '{ ips[$1]++ }END{ for(ip in ips){ print ip,ips[ip] }}' access.log | sort -k2 -nr | head -10
请描述出TCP三次握手的过程(不接受草图等图形等方式进行描述)
x
#第一次握手
客户端向服务端发送SYN报文,此时客户端进入到SYN_sent状态
#第二次握手
服务端接收到客户端的报文,回应自己SYN报文,同时会加一个ACK,表示收到了客户端的信息,此时服务端进入到SYN_recived状态
#第三次握手
客户端收到服务端发送的SYN+ACK,返回一个ACK给服务端,发送完之后,客户端与服务端建立主链接,进入到连接状态
统计出Linux操作系统中有多少个处于 TIME_WAIT 的连接 (netstat命令输出中的state列中会有TIME_WAIT状态标识),请写出具体的命令
x
netstat -antp | grep TIME_WAIT | wc -l
CentOS7中现在有xvdb2、xvdb3两个分区(均未使用过且未挂载), xvdb2做成ext4文件系统, 挂载到/tmp/data上并且保证重启系统后仍然可用, 请写出详细的步骤及命令
#初始化文件系统:
mkfs.ext4 /dev/xvdb2
#进入 /etc/fstab 添加
/dev/xvdb2 /tmp/data ext4 defaults 0 0
#启动挂载
mount -a
在CentOS 7操作系统中:
如何查看系统的版本号?
xxxxxxxxxx
cat /etc/redhat-release
如何清空内存中的缓存或缓冲数据?
xxxxxxxxxx
echo 3 > /proc/sys/vm/drop-caches
如何截取出机器的IP地址(仅IP地址出现)?
x
ifconfig | awk NR==2'{print $2}'
如何查看某个进程存在, 比如查看sliver进程是否存在?
x
ps aux | grep sliver