首页 > 系统相关 >30个Linux运维面试题,面试一线大厂必备!

30个Linux运维面试题,面试一线大厂必备!

时间:2024-07-05 15:58:59浏览次数:16  
标签:面试题 运维 如何 分区 30 使用 容错 命令 Linux

在本文中,我们将讨论 30 个 Linux 系统管理员面试问题以及经验丰富的专业人士的答案。

(1) 为什么需要 LVM ?

LVM(Logical volume management)推荐使用 LVM 管理 linux 服务器上的磁盘或存储,可以在线调整 LVM 分区的大小,而不用停止服务器。

(2) 如何检查内存和 CPU 统计信息 ?

使用 free 和 vmstat 命令,可以分别显示物理和虚拟内存统计信息。在 sar 命令的帮助下,我们可以查看 CPU 利用率和其他统计数据。

(3) sar 提供什么功能,sar 日志存储在哪个位置 ?

sar 收集、报告或保存系统活动信息。默认版本的 sar 命令 (CPU 利用率报告) 可能是用户开始系统活动调查时首先运行的工具之一,因为它监视主要的系统资源。如果 CPU 利用率接近 100% (user + nice + system),则采样的工作负载是 CPU 限制的。

sar 命令的默认日志位置为:/var/log/sa/sa{{dd}} dd 参数代表当前日期

(4) 如何增加 LVM 分区 ?

  • 使用 lvextend 命令,例如: lvextend -L +100M /dev/mapper/my-lvm
  • 使用 resize2fs 命令,例如:resize2fs /dev/mapper/my-lvm
  • 使用 df 命令检查分区大小

(5) 如何缩小 LVM 分区 ?

  • 使用 umount 命令卸载文件系统
  • 使用 resize2fs 命令, 例如:resiz2fs /dev/mapper/my-lvm 10G
  • 使用 lvreduce 命令, 例如: lvreduce -L 10G /dev/mapper/my-lvm

注意: 在生产环境中,不建议减少 lvm 分区,因为它可能导致数据损坏。

(6) 如何在原始磁盘上创建分区 ?

使用 fdisk 实用程序,我们可以在原始磁盘上创建分区。

  • 运行 fdisk /dev/hd* (IDE) or /dev/sd* (SCSI)
  • 输入 n 创建新分区
  • 创建分区后,输入 w 将更改写入分区表
  • 输入 partprobe 内核重新读取分区表
  • 运行 mkfs 命令格式化分区

(7) 内核模块 (kernel modules) 所在的位置在那里 ?

/lib/modules/kernel-version 目录存储所有内核模块或编译的驱动程序,使用 lsmod 命令可以查看所有已安装的内核模块。

(8) 什么是 umask ?

umask (User file creation mask),该掩码控制在创建文件和目录时设置哪些文件权限。

(9) 如何给用户设置永久 umask ?

要为用户永久设置此值,必须将其放入适当的profile文件中,该文件取决于用户的默认 shell。

(10) 如何在单用户模式下引导 RHEL / Rocky Linux / CentOS ?

  • 重新启动并进入 grub 提示符
  • 转到以 linux 开头的行尾,输入 rd.break 并回车
  • 用rw模式挂载root文件系统,然后执行 chroot /sysroot
  • 处理故障

(11) 如何使用 nfs 协议共享目录 ?

首先编辑 /etc/exportfs 配置文件,增加一行


xml

复制代码

/<directory-name> <ip or Network>(Options)

然后重启nfs服务,或者执行 exportfs -arv

(12) 如何检查和挂载 nfs 共享 ?

使用 showmount 命令可以查看使用 nfs 共享的目录,例如:showmount -e 192.168.1.110 使用 mount 命令可以在 linux 机器上挂载 nfs 共享。

(13) SMTP,DNS,FTP,DHCP,SSH,squid默认端口是什么 ?

  • Service Port
  • SMTP 25
  • DNS 53
  • FTP 20 (data transfer) , 21 ( Connection established)
  • DHCP 67/UDP(dhcp server) , 68/UDP(dhcp client)
  • SSH 22
  • Squid 3128

(14) 什么是 Network Bonding ?

Network bonding 是将多个网卡聚合到一个绑定接口中,以提供容错和高性能。Network bonding 也称为 NIC Teaming。

(15) Linux 中有哪些不同的 Network bonding 模式 ?

  • balance-rr or 0 – 轮循模式,容错和负载均衡
  • active-backup or 1 – active-backup 容错模式
  • balance-xor or 2 – balance-xor 容错和负载平衡
  • broadcast or 3 – 容错广播模式,所有传输都在从接口上发送
  • 802.3ad or 4 – IEEE 802.3ad 动态链路聚合模式。
  • balance-tlb or 5 – TLB (Transmit Load Balancing) 模式,实现容错和负载均衡。
  • balance-alb or 6 – ALB (Active Load Balancing) 模式,实现容错和负载均衡。

(16) 如何查看和验证绑定接口的状态 ?

/proc/net/bonding/bond0 文件包含绑定接口的所有细节,绑定接口名称可能因设置而异。

(17) 如何查看缺省路由和路由表 ?

netstat -nrip route show 命令可以查看缺省路由, route -n 命令可以查看路由表。

(18) 如何检查linux 服务器中哪些端口正在监听 ?

可以使用 ss 命令, netstat - listen 命令,lsof -i 命令查看监听端口。

(19) docker 容器的默认数据目录是什么 ?

docker 容器的默认数据目录为 /var/lib/docker

(20) docker 和 podman 的主要区别是什么 ?

docker 是基于守护进程的,这意味着容器只有在 docker 守护进程运行时才能工作,而 podman 是无守护进程的,这意味着容器不需要任何守护进程也能运行。

(21) Linux 如何升级内核 ?

我们必须永远不要升级 Linux 内核,总是使用 dnf,yum,rpm 命令安装新内核,因为升级内核会使 Linux 系统处于不可启动状态。

(22) 何在 linux 操作系统上扫描新分配的 luns 而不需要重启 ?

扫描新分配的 luns (Logical Unit Number) 有两种方式 :

Method:1 如果安装了 sg3 rpm,则运行该命令‘rescan-scsi-bus.sh’ Method:2 运行命令 echo "– – –" > /sys/class/scsi_host/hostX/scan

(23) 如何查看 Linux 服务器上 HBA 卡的 WWN 号 ?

使用 “systool -c fc_host -v | grep port_name”命令可以查询 HBA 卡的 WWN 号

(24) 如何添加和更改内核参数 ?

要在 Linux 中设置内核参数,编辑文件“ /etc/sysctl.conf”保存文件,并运行“ sysctl -p”命令,此命令将永久进行更改不重启机器。

(25) 如何逐行调试 shell 脚本 ?

要调试 shell 脚本,请在 bash 命令中使用 -x 选项,后跟脚本名称。


ruby

复制代码

$ bash -x script-name.sh

(26) Puppet 中的 manifests 是什么 ?

Puppet 中的 manifests 是指定客户端配置的文件

(27) 在 Puppet Server 中使用哪个命令对请求的证书签名 ?

2.X 版本中使用‘puppetca –sign hostname-of-agent’命令, 3.X版本中使用‘puppet ca sign hostname-of-agent’命令。

(28) 如何以及在哪里使用 Ansible ad-hoc 命令 ?

使用以下语法来使用 ad-hoc 命令


css

复制代码

$ ansible [pattern] -m [module] -a <module option> $ ansible webservers -m shell -a 'df -Th'

ad-hoc 命令用于执行快速任务和测试,在 ansible 主机上不需要编写任何 playbook 运行 ad-hoc 命令。

(29) 如何查找 /var 目录下大小超过 200MB 的文件 ?


shell

复制代码

$ sudo find /var -type f -size +100M -exec ls -lah {} \;

(30) 如何查看 /var 中创建超过30天的文件并将其重定向到文件中 ?


shell

复制代码

$ find /var -type f -mtime +30 -exec ls -lah {} \; > /tmp/a.tmp

作者:鸠摩智首席音效师
链接:https://juejin.cn/post/7386823617735131162
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:面试题,运维,如何,分区,30,使用,容错,命令,Linux
From: https://blog.csdn.net/LinkSLA/article/details/140210941

相关文章

  • C++语言相关的常见面试题目(三)
    1.List底层实现原理省流:list底层实现了一个双向循环链表。每个元素(或节点)包含三个部分:数据域(_M_Storage)、前驱指针(_M_prev)、后继指针(_M_next)。数据域:存储实际数据。前驱指针:指向链表中当前节点之前的一个节点。后继指针:指向链表中当前节点之后的一个节点此外,存......
  • 30-System类
    System类System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的(不需要创建对象,方法也是静态的)常用方法arraycopy();复制数组currentTimeMillis();获取当前系统时间,返回的是毫秒值gc();建议JVM赶快启动垃圾回收期回收垃圾exit(intstatus);推出JVM,参......
  • 自动化运维--Shell篇(1)
    1.Shell快速入门1.1运维运维是什么?公司的技术岗位运维的工作范围以天天生鲜项目为例:规划:我们需要多少资源来支持项目的运行管理:项目运行过程中的所有内容都管理起来流程规范:所有操作都形成制度,提高工作效率平台:大幅度提高工作效率监控:实时查看项目运行状态......
  • msp430定时器诠释,与32定时器大为不同
    msp4305529的定时器:从手册可以查看定时器的结构,其中控制功能的寄存器手册中很详细了,我这了只介绍我觉得他与32不同的地方和特别坑人的点1.它不具备操作寄存器,这就导致她不能像32那样通过控制重载寄存器来改变目标值,那他是怎么做的呢?它把比较捕获通道ccr0的寄存器值当作目标......
  • 大模型在运维领域中的应用
    大模型在运维领域中的应用日益广泛,其强大的数据处理、自动化和智能化能力为运维工作带来了显著的效率和质量提升。以下是大模型在运维领域中的具体应用及其优势的详细说明:一、大模型在运维领域的应用故障检测与诊断自动化检测:大模型通过分析和监控IT系统中的海量数据(包括日......
  • 代码随想录算法训练营第四十九天 | 300.最长递增子序列
    300.最长递增子序列题目链接文章讲解视频讲解动规五部曲:dp[i]:表示考虑元素i的最长子序列为dp[i]递推公式:dp[i]=max(dp[j]+1,dp[i]);初始化:dp[i]=1;每个元素单独算一个子序列长度为1遍历顺序:从前向后遍历打印dp数组classSolution{public:intlength......
  • 香橙派 AIpro搭建1Panel运维管理面板实现高效直观的设备状态监控
    ......
  • Linux网络服务面试题
    1、查看一个网络接口的方法有哪些?  ①查看目录/etc/sysconfig/network-scripts/下的网卡对应的配置文件ifcfg-ens33  ②ifconfigens332、如何给一个网络接口设置多个IP地址?  临时配置:ifconfigens33:1IP地址netmask掩码 up  永久配置:在网卡配置文件目录......
  • Dynamixel XL330 XL430 Robotics的低成本机械臂
    原文链接:GitHub-AlexanderKoch-Koch/low_cost_robot 该存储库包含用于构建和低成本机械臂的文件。你也可以建造第二个机械臂(引导臂)来控制另一个臂(跟随臂)。领导者的设计灵感来自GELLO项目,但建造起来更简单。这样的机械臂非常适合机器人学习,其中两只机械手臂也能折叠衣服。 ......
  • 每天10个js面试题(一)
    1.js基本数据类型?JavaScript共有八种数据类型,分别是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。其中Symbol和BigInt是ES6中新增的数据类型2.let、const、var的区别?let和const有暂时性死区,var没有let和const声明的变量具有块级作用域,var没有......