服务器测评网
我们一直在努力

Linux运维面试题有哪些高频考点和实战技巧?

Linux 运维面试题:核心知识点与实战解析

Linux 运维岗位在互联网行业需求旺盛,面试中不仅考察基础知识的掌握程度,更注重实际操作能力和问题排查经验,以下从基础命令、系统管理、服务部署、性能优化、安全运维及自动化运维六个维度,梳理常见面试题及解析,帮助候选人系统准备。

Linux运维面试题有哪些高频考点和实战技巧?

基础命令:熟练掌握是运维的基石

Linux 命令是运维人员的“基本功”,面试官常通过命令考察候选人对系统的理解深度。

文件与目录操作

  • 问题:如何查找 /var/log 目录下最近 7 天内修改过且大于 10MB 的日志文件?

  • 解析:结合 find 命令的 -mtime(修改时间)和 -size 参数,具体命令为:

    find /var/log -type f -mtime -7 -size +10M

    进一步可结合 -execxargs 处理文件,如删除或压缩:

    find /var/log -type f -mtime -7 -size +10M -exec gzip {} \;
  • 问题:如何查看文件 test.txt 的行数、单词数和字节数?

  • 解析:使用 wc 命令,-l 显示行数,-w 显示单词数,-c 显示字节数:

    wc -lwc test.txt

系统管理:深入理解内核与进程

系统管理能力直接关系到服务器稳定性,面试中常涉及进程管理、服务控制及日志分析。

进程与任务管理

  • 问题:如何查看当前系统的负载情况?top 命令中 load average 三列数值代表什么?

    Linux运维面试题有哪些高频考点和实战技巧?

  • 解析:使用 uptimetop 查看负载,load average 分别代表 1 分钟、5 分钟、15 分钟内的平均负载值,若负载值超过 CPU 核心数,则系统可能存在性能瓶颈。

  • 问题:发现一个进程 CPU 占用率 100%,如何定位问题并终止进程?

  • 解析

    1. ps auxtop 找到进程 PID(如进程号为 1234);
    2. 通过 strace -p 1234 跟踪系统调用,定位具体代码逻辑;
    3. 若确认异常,使用 kill -9 1234 强制终止(优先尝试 kill -15 优雅终止)。

服务部署:从 LAMP 到容器化

服务部署是运维的核心工作,传统环境与容器化技术均是考察重点。

LAMP 架构部署

  • 问题:简述 LAMP 架构中 Apache 与 Nginx 的选择依据,如何配置虚拟主机?
  • 解析
    • 选择依据:Apache 支持动态模块和 .htaccess 配置,适合中小型网站;Nginx 高并发性能优异,反向代理和负载均衡能力更强,适合静态资源和微服务架构。
    • Nginx 虚拟主机配置:在 nginx.conf 中添加 server 块,通过 server_nameroot 指定域名和目录:
      server {
          listen 80;
          server_name example.com;
          root /var/www/html;
          index index.html;
      }

Docker 容器化部署

  • 问题:如何通过 Docker 部署一个 Nginx 服务,并实现容器自启动?
  • 解析
    1. 拉取镜像并运行容器,映射端口和目录:
      docker run -d --name nginx-server -p 80:80 -v /data/html:/usr/share/nginx/html nginx:latest
    2. 设置容器自启动:
      docker update --restart=always nginx-server

性能优化:从监控到调优

性能优化是运维进阶的关键,需结合监控工具定位瓶颈,针对性调优。

系统监控工具

  • 问题:常用 Linux 性能监控工具有哪些?分别用于分析什么指标?
  • 解析
    • top/htop:实时查看进程 CPU、内存占用;
    • free:查看内存使用情况,重点关注 buff/cacheavailable
    • iostat:监控磁盘 I/O 性能,如 iostat -x 1 可查看磁盘利用率;
    • sar:收集系统历史数据,如 sar -u 1 5 查看实时 CPU 使用率。

内存与磁盘优化

  • 问题:服务器内存占用过高,如何排查?
  • 解析
    1. free -h 查看内存分布,判断是否为 buff/cache 占用过高(可通过 echo 3 > /proc/sys/vm/drop_caches 释放缓存);
    2. used 内存过高,用 ps aux --sort=-%mem 查找占用内存最多的进程,分析是否异常。

安全运维:防患于未然

安全是运维的红线,需掌握权限管理、防火墙配置及漏洞扫描能力。

Linux运维面试题有哪些高频考点和实战技巧?

权限与访问控制

  • 问题:如何禁止 root 用户远程登录,并限制普通用户 sudo 权限?
  • 解析
    • 编辑 /etc/ssh/sshd_config,将 PermitRootLogin 设为 no,重启 SSH 服务:
      systemctl restart sshd
    • 限制 sudo 权限:编辑 /etc/sudoers,为用户添加 username ALL=(ALL) /usr/bin/ls 等命令白名单,避免 ALL=(ALL) ALL 赋予全部权限。

防火墙与日志审计

  • 问题:如何配置 firewalld 仅允许 80 端口访问,并记录 rejected 日志?
  • 解析
    firewall-cmd --permanent --add-port=80/tcp  # 开放 80 端口
    firewall-cmd --reload  # 重载规则
    firewall-cmd --get-log-denied  # 查看 rejected 日志

自动化运维:提升效率的核心

自动化运维是现代运维的趋势,需掌握 Shell 脚本、Ansible 等工具。

Shell 脚本实战

  • 问题:编写一个 Shell 脚本,检查网站 http://example.com 可用性,若连续 3 次不可用则发送告警邮件。
  • 解析
    #!/bin/bash
    count=0
    while [ $count -lt 3 ]; do
        if curl -s --connect-timeout 5 http://example.com > /dev/null; then
            echo "网站正常"
            exit 0
        else
            count=$((count+1))
            sleep 10
        fi
    done
    echo "网站连续 3 次不可用,请检查!" | mail -s "网站告警" admin@example.com

Ansible 自动化部署

  • 问题:如何使用 Ansible Playbook 批量部署 Nginx?
  • 解析:编写 deploy_nginx.yml 文件:
    ---
    - hosts: webservers
      become: yes
      tasks:
        - name: install nginx
          yum:
            name: nginx
            state: present
        - name: start nginx
          service:
            name: nginx
            state: started
            enabled: yes

    执行命令:ansible-playbook -i inventory.ini deploy_nginx.yml

Linux 运维面试覆盖“基础-进阶-自动化”全栈能力,候选人需夯实命令基础,深入理解系统原理,同时掌握容器化、自动化等现代运维技术,实际面试中,结合具体场景分析问题、展现解决问题的思路,往往比背诵答案更能打动面试官。

赞(0)
未经允许不得转载:好主机测评网 » Linux运维面试题有哪些高频考点和实战技巧?