Linux运维工程师高频面试题及详细答案(实战版)_第1页
Linux运维工程师高频面试题及详细答案(实战版)_第2页
Linux运维工程师高频面试题及详细答案(实战版)_第3页
Linux运维工程师高频面试题及详细答案(实战版)_第4页
Linux运维工程师高频面试题及详细答案(实战版)_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux运维工程师高频面试题及详细答案(实战版)一、Linux基础命令类(高频基础)1、如何查看Linux系统版本、内核版本?参考答案:查看系统发行版本(CentOS/RedHat/Ubuntu):PlainText

cat/etc/redhat-release#CentOS/RedHat

cat/etc/lsb-release#Ubuntu查看内核版本:PlainText

uname-r

uname-a#查看完整内核信息2、find命令常用场景,如何根据文件名、大小、时间查找文件?参考答案:find是运维最常用的查找命令,精准匹配服务器文件,常用参数如下:1)按文件名查找(全盘/指定目录)PlainText

find/-name"*.log"#全盘查找所有日志文件

find/data-name"test.txt"#指定目录精准查找2)按文件大小查找PlainText

find/var/log-size+100M#查找大于100M的文件

find/var/log-size-10M#查找小于10M的文件3)按修改时间查找PlainText

find/data-mtime+7#查找7天前修改的文件

find/data-mtime-1#查找1天内修改的文件4)查找后批量删除过期文件(运维常用)PlainText

find/data/logs-name"*.log"-mtime+30-delete3、grep命令常用参数及实战用法?参考答案:grep用于文本过滤、日志排查,核心常用参数:-i:忽略大小写-n:显示匹配行号-v:反向匹配,排除指定内容-r:递归遍历目录匹配-E:支持正则表达式实战示例:PlainText

grep-n"error"nginx.log#查看日志中报错行及行号

grep-v"#"/etc/profile|grep-v"^$"#过滤配置文件注释和空行

grep-r"timeout"/etc/nginx/#递归查找nginx配置中timeout字段4、Linux权限体系详解,755、644、777权限含义?参考答案:Linux文件权限分为三段:所有者(u)、所属组(g)、其他用户(o),权限数值对应:4读(r)、2写(w)、1执行(x)。755:所有者读写执行,组和其他用户只读执行。目录默认权限,保证目录可访问、可进入,仅管理员可修改。644:所有者读写,组和其他用户只读。文件默认权限,普通文本、配置文件通用,安全无执行权限。777:所有用户读写执行。高危权限,生产环境禁止随意配置,仅临时测试使用,极易造成文件篡改、权限泄露。权限修改命令:PlainText

chmod755目录名

chmod644文件名

chown用户:组文件名/目录名#修改属主属组二、系统进程与资源监控类1、ps、top、htop的区别,如何排查服务器CPU占用过高问题?参考答案:三者区别:ps:静态查看当前瞬间进程状态,一次性输出结果top:动态实时监控系统进程、CPU、内存、负载,默认3秒刷新一次htop:top的升级版,界面更直观,支持鼠标操作、进程排序、批量结束进程,需单独安装CPU过高排查流程(生产实战):1、top查看整体负载,确认是用户进程还是系统内核占用CPU高;2、通过top排序找到CPU占比最高的PID进程;3、通过ps-ef|grepPID查看进程归属、启动命令;4、排查进程异常:是否为日志刷屏、脚本死循环、程序BUG、恶意进程;5、临时处理:良性异常进程重启服务,恶意/无用进程kill-9强制终止;6、永久优化:修复程序BUG、优化脚本、配置进程限流、定时清理冗余任务。2、如何查看内存占用、磁盘IO、网络流量?参考答案:1)内存查看PlainText

free-h#人性化显示总内存、已用、空闲、缓存缓冲区

top#查看单个进程内存占用占比2)磁盘与磁盘IO查看PlainText

df-h#查看磁盘分区使用率、挂载情况

du-sh/*#查看根目录各文件夹大小,排查磁盘爆满

iostat-x1#实时监控磁盘读写IO、等待率,排查IO瓶颈3)网络流量查看PlainText

ifstat#查看网卡实时流入流出流量

sar-nDEV1#每秒刷新网卡流量统计

netstat-an|wc-l#统计当前网络连接数3、僵尸进程是什么?如何查找和处理僵尸进程?参考答案:子进程执行结束后,父进程未调用wait()回收子进程资源,导致子进程进程号保留、占用系统资源,这类进程即为僵尸进程(状态Z)。僵尸进程不占用CPU和内存,但会占用PID,大量堆积会导致系统无法创建新进程。查找命令:PlainText

ps-ef|grepZ处理方式:1、轻度僵尸进程:无需处理,系统空闲时会自动回收;2、大量僵尸进程:找到其父进程PID,重启父进程对应的服务,或直接kill父进程,子进程会被init进程接管并自动回收。禁止直接kill僵尸进程本身,无法生效。三、磁盘与文件系统类1、磁盘空间显示100%,但找不到大文件是什么原因?如何解决?参考答案:核心原因:文件被进程占用删除(删除未释放)。日志文件、临时文件被rm删除后,持有该文件的进程未重启,文件句柄未释放,磁盘空间不会回收,df查询空间爆满,但du查询不到大文件。排查与解决步骤:1、执行lsof|grepdeleted查看已删除未释放的文件及对应进程;2、找到占用文件的服务进程,重启对应服务(nginx、tomcat、日志服务等);3、紧急处理:直接清空文件内容>文件名,不删除文件,实时释放空间;4、预防方案:生产环境禁止直接rm删除正在写入的日志,改用日志切割工具(logrotate)。2、软链接和硬链接的区别?参考答案:1、软链接(符号链接):相当于Windows快捷方式,记录文件路径,不复制数据。可以跨分区、跨磁盘,支持目录链接,源文件删除后链接失效。2、硬链接:多个文件名指向同一个文件inode,共享同一数据块。不支持跨分区、不支持目录链接,删除源文件,硬链接文件仍可正常访问,只有所有链接删除后文件才会真正删除。创建命令:PlainText

ln-s源文件软链接文件#软链接

ln源文件硬链接文件#硬链接3、inode爆满问题排查与解决?参考答案:inode是文件索引节点,每个文件占用一个inode,磁盘inode耗尽后,磁盘空间充足也无法创建新文件、写入日志。多由大量小文件、空文件堆积导致。排查命令:PlainText

df-i#查看各分区inode使用率解决方式:1、find查找目录下大量小文件,批量删除无用临时文件、过期缓存文件;2、优化业务,避免程序生成海量极小日志、临时文件;3、重新格式化磁盘时调整inode数量(长期优化)。四、网络与防火墙类1、常用网络排查命令,网络不通的排查思路?参考答案:常用命令:ping、telnet、curl、ss、netstat、traceroute、nslookup网络不通分层排查思路(从底层到上层):1、检查本机网卡状态、IP地址、网关是否正常(ipaddr、route-n);2、ping本机网关,排查局域网连通性,确认本机网络无异常;3、ping外网IP,排查是否是外网不通;ping域名,排查DNS解析是否故障;4、telnet/curl目标端口,排查端口是否开放、服务是否监听;5、检查服务器防火墙、云服务器安全组是否拦截端口;6、排查对端服务器服务状态、端口监听、进程是否正常。2、ss和netstat的区别?生产环境推荐用哪个?参考答案:netstat是传统网络连接查看工具,遍历所有网络协议栈信息,查询速度慢,高并发服务器下卡顿严重,系统默认预装但逐渐淘汰;ss是新一代网络连接工具,基于内核TCP协议栈直接读取数据,查询速度快、占用资源少,支持高并发场景,参数更简洁。生产环境优先使用ss,常用命令:PlainText

ss-ant#查看所有TCP连接

ss-anu#查看所有UDP连接

ss-ltnp#查看本机监听端口及对应进程3、CentOS7firewalld防火墙常用操作?参考答案:PlainText

#查看防火墙状态

systemctlstatusfirewalld

#放行单个端口(永久生效)

firewall-cmd--permanent--add-port=80/tcp

#放行端口段

firewall-cmd--permanent--add-port=3306-3308/tcp

#放行指定IP访问所有端口

firewall-cmd--permanent--add-rich-rule='rulefamily="ipv4"sourceaddress="00/32"accept'

#重载防火墙规则(修改规则后必须执行)

firewall-cmd--reload

#查看所有放行规则

firewall-cmd--list-all五、服务架构与运维实战类1、简述Nginx常用模块、正向代理和反向代理区别?参考答案:Nginx核心常用模块:ngx_http_proxy_module:反向代理模块,核心必备模块ngx_http_upstream_module:负载均衡模块,实现多服务分发ngx_http_rewrite_module:地址重写、跳转模块ngx_http_gzip_module:文件压缩模块,提升访问速度ngx_http_log_module:日志记录模块,记录访问、错误日志正向代理vs反向代理:正向代理:代理客户端,客户端请求通过代理访问外网,服务端不知道真实客户端IP,多用于翻墙、内网上网;反向代理:代理服务端,用户访问代理服务器,代理转发请求到后端真实业务服务,用户无感知后端服务地址,多用于网站集群、负载均衡、隐藏后端服务。2、Nginx负载均衡常用策略?参考答案:轮询(默认):请求依次分发到每台后端服务器,适合服务器性能一致的场景;权重weight:权重越高,接收请求越多,适合后端服务器性能不均的场景;ip_hash:根据客户端IP哈希分配,保证同一用户始终访问同一后端服务器,解决session共享问题;least_conn:最少连接策略,请求分发到当前连接数最少的服务器,适配动态请求场景。3、MySQL数据库慢查询如何排查?参考答案:1、开启MySQL慢查询日志,设置超时阈值(默认10秒,生产一般设置1-3秒);2、通过showslowlog查看慢查询日志文件路径;3、使用mysqldumpslow工具分析日志,统计高频慢SQL:PlainText

mysqldumpslow-st-t10slow.log#统计耗时最长的10条SQL4、对慢SQL执行explain分析执行计划,排查是否无索引、索引失效、全表扫描;5、优化方案:新增索引、优化SQL语句、拆分大SQL、分表分库、优化业务逻辑。六、Shell脚本与自动化运维类1、写一个简单脚本,实现定期清理30天前的日志文件参考答案:脚本功能:清理指定目录30天前的.log后缀日志,保留目录结构,仅删除过期文件PlainText

#!/bin/bash

#定义日志存放目录

LOG_DIR="/data/nginx/logs"

#清理30天前的日志文件

find$LOG_DIR-name"*.log"-mtime+30-delete

#输出清理时间

echo"日志清理完成,执行时间:$(date+%Y-%m-%d%H:%M:%S)">>/var/log/clean_log.log配合定时任务自动执行:PlainText

crontab-e

#每天凌晨2点执行日志清理

02***/bin/bash/scripts/clean_log.sh2、Shell脚本中$0、$1、$#、$?分别代表什么?参考答案:$0:脚本本身的文件名$1、$2...:脚本的第1、2...个传入参数$#:传入脚本的参数总个数$?:上一条命令执行的返回状态码,0代表执行成功,非0代表执行失败七、故障排查综合面试题(压轴实战)1、网站访问卡顿、超时,完整排查流程?参考答案:1、客户端层面:测试不同网络、不同设备访问,排除本地网络、浏览器缓存问题;2、域名DNS层面:nslookup解析域名,排查解析延迟、解析错误、DNS污染;3、网络层面:ping服务器、telnet端口,排查延迟、丢包、端口不通;4、服务器资源层面:top、free、iostat排查CPU、内存、磁盘IO、负载过高问题;5、网关与防火墙层面:检查服务器防火墙、云安全组是否限流、拦截,是否存在端口封禁;6、服务层面:查看Nginx、业务服务进程是否存活,查看访问日志、错误日志,排查报错、连接溢出;7、后端层面:排查数据库慢查询、Redis缓存击穿/失效、后端接口响

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论