基本信息
文件名称:Linux运维工程师面试题及答案.docx
文件大小:27 KB
总页数:6 页
更新时间:2025-09-25
总字数:约4.25千字
文档摘要

Linux运维工程师面试题及答案

一、基础操作与命令应用(考察日常运维熟练度)

问题:日常工作中,如何快速查看Nginx服务的所有进程(包括子进程)?如果发现进程异常,怎么强制终止?

答案:查看进程用psaux|grepnginx(aux显示所有用户进程,含完整命令行),或更精准的pgrep-fnginx(直接过滤进程名,避免grep自身进程干扰)。异常终止时,先试systemctlstopnginx(正规停止),若无效用kill-9$(pgrep-fnginx),批量强制杀死所有关联进程,注意先确认进程ID避免误杀。

问题:服务器磁盘空间满了,怎么快速定位是哪个目录或文件占用过大?

答案:先通过df-h查看哪个分区满了(比如/var满了),再进入对应分区cd/var,用du-sh*查看一级目录大小(s汇总,h人性化显示),找到大目录后逐层深入,比如du-shlog/*,最终用ls-lh看具体大文件。实际工作中会搭配--max-depth=1控制查询层级,避免遍历过慢,比如du-sh--max-depth=1/var。

问题:怎么查看系统近3天内的登录记录,包括登录用户、IP、时间?

答案:主要看/var/log/secure(CentOS/RHEL)或/var/log/auth.log(Ubuntu),用grepAccepted/var/log/secure|grep-E$(date-d3daysago+%Y-%m-%d)过滤3天内成功登录记录,能看到用户名、IP和时间;若要所有登录尝试(包括失败),去掉Accepted即可。也可用last-n100看近期登录,但日志文件更全面。

二、服务配置与故障排查(考察核心服务运维能力)

问题:Nginx配置反向代理后,后端服务获取到的客户端IP是Nginx服务器IP,怎么让后端拿到真实客户端IP?

答案:在Nginx的location反向代理配置里加3个参数:

location/{

proxy_passhttp://后端IP:端口;

proxy_set_headerHost$host;#传递客户端请求的Host头

proxy_set_headerX-Real-IP$remote_addr;#传递真实客户端IP

proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;#多代理场景传递IP链

}

同时后端服务(比如Tomcat、PHP-FPM)要开启解析这些头的配置,比如Tomcat在server.xml里配置remoteIpValve,这样日志和代码里就能拿到真实IP。

问题:MySQL主从同步突然延迟变大,可能有哪些原因?怎么排查和解决?

答案:常见原因有3类:

主库写压力大:用showprocesslist看主库是否有慢SQL、长事务,比如大表批量更新;解决:优化SQL(加索引、分批次执行),或搭建从从架构分摊读压力。

从库IO/SQL线程阻塞:用showslavestatus\G看Slave_IO_Running和Slave_SQL_Running是否为Yes,若SQL线程卡壳,可能是主从表结构不一致或从库执行SQL报错;解决:对比主从表结构,用pt-slave-restart工具自动跳过错误(非核心业务),或手动同步缺失数据后重启从库。

从库硬件性能差:用top、iostat看从库CPU、磁盘IO是否满负荷;解决:升级从库配置(加内存、换SSD),或把从库的binlog清理、relaylog清理策略调严(避免占用过多磁盘)。

问题:Linux服务器突然出现大量TIME_WAIT状态的TCP连接,导致新连接无法建立,怎么处理?

答案:先通过netstat-an|grepTIME_WAIT|wc-l统计数量,再用ss-tanstatetime-wait看具体连接的端口(比如80、443)。处理分临时和永久:

临时生效:调整内核参数,echo1/proc/sys/net/ipv4/tcp_tw_reuse(允许复用TIME_WAIT连接),echo30/proc/sys/net/ipv4/tcp_fin_timeout(缩短TIME_WAIT超时时间,默认60秒)。

永久生效:在/etc/sysctl.conf里加:

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_fin_timeout