ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

运维笔试面试题

运维笔试面试题 第一部分 shell1.找出目录/test下所有的.log文件并且打印这些文件内容。find /test -name *.log | xargs cat2. 通过正则表达式匹配文本中的IP地址cat ip.txt |grep ^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$3. 假设有一个a.txt文件,找出时间在2099-11-08 15:13 到2099-11-08 15:45 区间内的数据行且只打印第1字段和第3字段sed -n /2099-11-08 15:13/,/2099-11-08 15:45/p a.log | awk {print $1 $3}4. 如何高效分析超大访问日志文件查找出访问次数最多的前 10 个 IPawk {print $1} access.log | sort -S 2G --parallel4 -T /tmp/sort | uniq -c | sort -nr | head -n 10解析这道题的本质是单机内存一次性无法加载这么大的文件因此需要多线程的、限制内存空间的去统计计算这么大的文件。仅适用于 10GB-100GB 级别的文件TB 级别的文件需要采用大数据的方案如并行处理 ClickHouse。awk 流式读取并不会一次性加载整个文件统计出日志的第一列。sort 只有几十 M大文件 200G 就会疯狂临时写磁盘效率低下。-S 指定 2G 内存会明显提升效率。需要先 sort 排序sort 是 uniq 的前置条件。--parallel4 表示 4 个线程排序如果 CPU 是 8 核可以指定参数为 8。-T /tmp/sort 临时目录如果服务器有 SSD 的盘也可以指定到 SSD 盘的挂载目录。uniq -c 统计IP 出现次数。sort -nr -n 数字排序 -r 倒序 对统计出的IP 次数进行倒序 从大到小head -n 10 取前10个第二部分 nginx1. Nginx 中设定 JS、CSS 文件的过期时间为 5 分钟location ~.*\.(js|css)?$ { expires 5m; }2. 请解读以下 Nginx 配置文件的执行内容http { map $http_x_forwarded_for $blocked_ip { ~*^(31\.41\.244\.|141\.98\.11\.) 1; default 0; } upstream backend { ip_hash; server app1:8080; server app2:8080; server app3:8080 backup; } server { listen 80; server_name myapp.example.com; location / { if ($blocked_ip) { return 444; } proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }答案map 黑名单功能所有以 31.41.244 或 141.98.11 开头的 IP 禁止访问如果没有匹配结果则返回 0。反向代理的负载均衡功能通过域名 myapp.example.com 访问如果是禁止 IP 则返回 444如果不是则负载到后端。基于 IP_hash 方式进行请求转发访问后端 8080 端口的服务。其中当 app1 和 app2 不可用时app3 可提供服务backup 参数的作用。第三部分 数据库3. 查看 MySQL database-binlog.000992 日志中操作的命令mysqlbinlog database-binlog.000992 | grep -E select|update|delete|insert into第四部分 docker 容器化1. 请解释什么是 Rolling-update 和 Canary 这两种部署方式以及它们的优缺点。答案 滚动更新一个接一个以滚动更新的方式发布新版本直至全部替换完成。 金丝雀发布是一种将新版本部署到一小部分用户的方法然后继续全量发布。 优缺点 如果需要保证服务的稳定性和可用性可以选择滚动更新。 如果需要测试新版本在生产环境的性能和稳定性可以选择金丝雀发布。第五部分计算机网络200请求成功301资源(请求网页)被永久转移到其他URL404请求的页面(静态资源)不存在500内部服务器错误无法完成请求501服务器不支持请求的功能无法完成请求501的一些原因: 恶意软件服务器过载服务器错误清除缓存禁用代理联系主机服务商1. 请解释 HTTP/1.1 和 HTTP/2 的区别以及 HTTP/2 相较于 HTTP/1.1 的改进之处HTTP/1.x 的解析基于文本形式HTTP/2 的解析形式基于二进制形式有更多的传输方式。 HTTP/1.x 一个请求-响应建立一个连接每个请求都要建立一个连接。HTTP/2 多个请求可以同时在一个连接上即某个连接耗时严重也不会影响其他的连接多路复用根据请求的 ID 进行区分。 HTTP/1.x 的 Header 头带有大量信息每次都需要重新发送。HTTP/2 服务端和客户端各自缓存一份头字段Header Fields表变更更新避免重复传输。 HTTP/2 具有服务端推送信息到客户端的功能即静态资源推送。第六部分 CDN 安全与防护1. CDN 的工作原理是什么内容分发网络(CDN) 通过在多个地理位置建立一组边缘服务器来缓存加速响应用户请求。1 来自偏远地区的用户首次访问您的网站内容2 请求到达您的web服务器服务器将响应发送给远程访客同时将响应的副本发送到离该访客地理位置最近的CDN缓存服务器3 CDN缓存服务器将副本存储为缓存文件4 下次该访客或该访客地理位置相近的访客请求时将由缓存服务器响应静态内容静态内容是不会因用户的请求而改变的网站数据如网站的标题图像字体样式徽标等对所有用户都是保持不变css样式代码一般确定了也不会随便大范围改动apk软件安装包图片等。这些内容非常适合存储在CDN上动态内容:用户的请求大多需要和后端服务器接口进行交互生成交互数据给用户。这些数据会因为登录不同的用户用户位置不同权限不同点击网站的不同选项动态的生成数据
返回列表