为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
shutdown:用来进行关机程序
halt:用来关闭正在运行的Linux操作系统。halt命令会先检测系统runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
poweroff:用来关闭计算机操作系统并且切断系统电源
logout:退出当前登录的Shell。
exit:退出当前登录的Shell。
# 进程管理相关命令
bg:将一个在后台暂停的命令,变成继续执行。
fg:将后台中的命令调至前台继续运行。
jobs:查看当前有多少在后台运行的命令。
kill:用于删除执行中的程序或工作。
killall:用于终止某个指定名称的服务所对应的全部进程。
pkill:通过进程名终止进程。
crontab:用来定期执行程序的命令。
ps:列出系统中当前运行的那些进程
pstree:将所有行程以树状图显示
nice/renice:为未运行命令指定运行时调度优先级的,如果是已运行的命令则需要renice命令。
nohup:让后台工作在离开操作终端时,也能够正确地在后台执行。
pgrep:用来判断程序是否正在运行。
runlevel:查看系统当前运行级别。
init:用于切换到指定的运行级别。
service:可以启动、停止、重新启动和关闭系统服务
cpu 大小
cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id”
![](https://img-blog.csdnimg.cn/img_convert/aac1c69f14b00ab4cdd6ce653425cdf1.png)
Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为单核
## 内存大小
cat /proc/meminfo |grep MemTotal
![](https://img-blog.csdnimg.cn/img_convert/ae752d2cb230d5c772ffcdb05aaa6a1a.png)
## 硬盘大小
[root@k8s-master-node1 ~]# fdisk -l |grep Disk
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Disk label type: dos
Disk identifier: 0x000a5b7e
Disk /dev/sdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors
Disk label type: dos
Disk identifier: 0x9987fe16
[root@k8s-master-node1 ~]#
## 查看内核/操作系统/CPU信息的linux系统信息命令
[root@k8s-master-node1 ~]# uname -a
Linux k8s-master-node1 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@k8s-master-node1 ~]#
## 查看操作系统主机名
[root@k8s-master-node1 ~]# hostname
k8s-master-node1
[root@k8s-master-node1 ~]#
## 列出所有pci设备
[root@k8s-master-node1 ~]# lspci -tv
![](https://img-blog.csdnimg.cn/img_convert/92bd36f0244706b5aaf9c9364478263a.png)
## 列出加载的内核模块
[root@k8s-master-node1 ~]# lsmod
![](https://img-blog.csdnimg.cn/img_convert/049760cabe3fe1e8360d7548cbbea58d.png)
## 查看环境变量
# env
![](https://img-blog.csdnimg.cn/img_convert/cfdda81669893cffcc93efed135c7829.png)
## 查看内存使用量和交换区使用量
[root@k8s-master-node1 ~]# free -h
total used free shared buff/cache available
Mem: 94G 22G 66G 718M 5.4G 70G
Swap: 0B 0B 0B
[root@k8s-master-node1 ~]#
## 查看各分区使用情况
[root@k8s-master-node1 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 48G 0 48G 0% /dev
tmpfs tmpfs 48G 0 48G 0% /dev/shm
tmpfs tmpfs 48G 719M 47G 2% /run
tmpfs tmpfs 48G 0 48G 0% /sys/fs/cgroup
/dev/sda1 ext4 48G 28G 18G 62% /
/dev/sdb1 ext4 493G 377G 91G 81% /data
## 查看指定目录的大小
[root@k8s-master-node1 ~]# du -lsh ./*
4.0K./1.sh
4.0K./2.sh
4.0K./anaconda-ks.cfg
4.0K./application.yaml
2.2M./core.14557
2.6M./gmsm4encriptor_linux
2.4M./gmsm4encriptor_mac
19G./ivc-full-v2.9.0.tar.gz
13M./mysql-1.0-SNAPSHOT.jar
2.1G./mysql_backup_20230619
227M./mysql_backup_20230619.tar.gz
100K./nohup.out
176K./out.txt
4.0K./Sm4Util.java
4.0K./sql.sh
8.3M./test
8.0K./tmp.json
[root@k8s-master-node1 ~]#
## 查看内存总量
[root@k8s-master-node1 ~]# grep MemTotal /proc/meminfo
MemTotal: 98817580 kB
[root@k8s-master-node1 ~]#
## 查看内存余量
[root@k8s-master-node1 ~]# grep MemFree /proc/meminfo
MemFree: 69755204 kB
[root@k8s-master-node1 ~]#
## 查看系统运行时间、用户数、负载
[root@k8s-master-node1 ~]# uptime
10:16:33 up 54 days, 16:49, 1 user, load average: 0.56, 0.75, 1.22
[root@k8s-master-node1 ~]#
## 查看系统负载磁盘和分区
[root@k8s-master-node1 ~]# cat /proc/loadavg
0.55 0.74 1.20 12/3934 55075
[root@k8s-master-node1 ~]#
## 查看挂接的分区状态
[root@k8s-master-node1 ~]# mount | column -t
![](https://img-blog.csdnimg.cn/img_convert/8452d66d8e95d494fe205954842e2d55.png)
## 查看所有分区
[root@k8s-master-node1 ~]# fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
…
Disk identifier: 0x000a5b7e
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 100665343 50331648 83 Linux
/dev/sda2 100665344 104857599 2096128 82 Linux swap / Solaris
…
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1048575999 524286976 83 Linux
[root@k8s-master-node1 ~]#
## 查看所有交换分区
[root@k8s-master-node1 ~]# swapon -s
## 查看磁盘参数(仅适用于IDE设备
# hdparm -i /dev/hda
## 查看启动时IDE设备检测状况
[root@k8s-master-node1 ~]# dmesg |grep IDE
[ 2.093243] pci 0000:00:07.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7]
[ 2.093245] pci 0000:00:07.1: legacy IDE quirk: reg 0x14: [io 0x03f6]
[ 2.093246] pci 0000:00:07.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177]
[ 2.093248] pci 0000:00:07.1: legacy IDE quirk: reg 0x1c: [io 0x0376]
[root@k8s-master-node1 ~]#
## 查看所有网络接口属性
# ifconfig
![](https://img-blog.csdnimg.cn/img_convert/b3ea9eb201f3e9fb702513584ecc0685.png)
## 查看所有网络接口的属性
# iptables -L
![](https://img-blog.csdnimg.cn/img_convert/6b092967a28b65bc85658bbe6511e414.png)
## 查看路由表
[root@k8s-master-node1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.20.254 0.0.0.0 UG 100 0 0 eth0
10.48.0.0 0.0.0.0 255.255.255.0 U 0 0 0 cni0
10.48.1.0 10.48.1.0 255.255.255.0 UG 0 0 0 flannel.1
10.48.2.0 10.48.2.0 255.255.255.0 UG 0 0 0 flannel.1
10.126.1.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
172.16.20.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-abb9352b219e
[root@k8s-master-node1 ~]#
## 查看所有监听端口
# netstat -tnlp
![](https://img-blog.csdnimg.cn/img_convert/46ac5c6314d5d948b0f05855aa1f7561.png)
## 查看所有已经建立的连接
# netstat -antp
## 查看网络统计信息进程
netstat -s
![](https://img-blog.csdnimg.cn/img_convert/db35001681f953fbd8c72aae894754d4.png)
## 查看所有进程
# ps -ef
![](https://img-blog.csdnimg.cn/img_convert/d186f8b6771e8c9c29232ea2ac50ac09.png)
## 实时显示进程状态
# top
![](https://img-blog.csdnimg.cn/img_convert/bf2f6fd38cc939cccb6782e30a355c4f.png)
## 查看活动用户
[root@k8s-master-node1 ~]# w
10:29:02 up 54 days, 17:01, 1 user, load average: 0.83, 1.24, 1.24
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.128.73 10:03 6.00s 0.24s 0.14s -bash
[root@k8s-master-node1 ~]#
## 查看指定用户信息
[root@k8s-master-node1 ~]# id root
uid=0(root) gid=0(root) groups=0(root),1001(docker)
[root@k8s-master-node1 ~]#
## 查看用户登录日志
# last
![](https://img-blog.csdnimg.cn/img_convert/1f06d0ed43f572374262303a997bd60e.png)
## 查看系统所有用户
[root@k8s-master-node1 ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
postfix
sshd
chrony
yibot
jenkins
[root@k8s-master-node1 ~]#
## 查看系统所有组
[root@k8s-master-node1 ~]# cut -d: -f1 /etc/group
![](https://img-blog.csdnimg.cn/img_convert/e483ebd472d29b6a7bb818efae6f9e6e.png)
## 查看当前用户的计划任务
[root@k8s-master-node1 ~]# crontab -l
# Ntpdate clock synchronization
*/30 * * * * ((/usr/sbin/ntpdate -u ntp.aliyun.com; hwclock -w) 2>&1 &> /dev/null)
* * * * * /usr/local/gse/agent/bin/gsectl watch
## ======== Extra monitoring data push to Open-Falcon ========
* * * * * /usr/local/open-falcon/extra_mons/bin/main.sh >/dev/null 2>&1
37 15 * * * sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
[root@k8s-master-node1 ~]#
## 列出所有系统服务
[root@k8s-master-node1 ~]# chkconfig
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies \[target\]'.
netconsole 0:off1:off2:off3:off4:off5:off6:off
network 0:off1:off2:on3:on4:on5:on6:off
[root@k8s-master-node1 ~]#
## 查看所有安装的软件包
# rpm -qa
![](https://img-blog.csdnimg.cn/img_convert/45e50e70c36a3dfa9ead972bb80856c1.png)
## 按 CPU 利用率从大到小排列
# ps -e -o “%C : %p : %z : %a”|sort -nr
## 查看 http 的并发请求数及其 TCP 连接状态:
[root@k8s-master-node1 ~]# netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
CLOSE_WAIT 1
ESTABLISHED 290
FIN_WAIT2 1
SYN_SENT 2
TIME_WAIT 289
[root@k8s-master-node1 ~]#
## 允许root登录
sed -i ‘/Root/s/no/yes/’ /etc/ssh/sshd_config
## 显示运行 3 级别开启的服务
ls /etc/rc3.d/S* |cut -c 15-
## CPU负载
[root@k8s-master-node1 ~]# cat /proc/loadavg
0.48 1.00 1.26 1/3934 118801
[root@k8s-master-node1 ~]#
## CPU负载
mpstat 1 1
检查 %idle 是否过低(比如小于5%)。
## swap监测
vmstat 1 5
观察 si 和 so 值是否较大
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
8801
[root@k8s-master-node1 ~]#
## CPU负载
mpstat 1 1
检查 %idle 是否过低(比如小于5%)。
## swap监测
vmstat 1 5
观察 si 和 so 值是否较大
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
[外链图片转存中…(img-i4Sav25Q-1715328027504)]
给大家整理的电子书资料:
[外链图片转存中…(img-60qL59mx-1715328027505)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!