为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
system_u代表的是用户。
object_r代表的是角色。
第三段是SELinux中最重要的信息,admin_home表示的是类型。
最后一段s0是跟MLS、MCS相关的东西。
⛳️ SELinux策略
SELinux通过定义策略来控制哪些域能访问哪些上下文;SELinux有很多预置策略,通常不需要自定义策略(除非要对自定义服务、程序进行保护);Red Hat Linux使用预置的目标策略。
目标策略定义只有目标进程受到SELinux的限制,其他进程运行在非限制模式下,目标策略只影响网络应用程序。RHEL受限的网络服务有200个左右,常见的有dhcpd、httpd、mysqld、named、ntpd(时间伺服服务器)、squid(代理服务器)、rpcbind、syslogd等。
⛳️ SELinux模式
SELinux有如下三种工作模式。
- 强制模式(enforcing):只要是违反策略的行动都会被禁止,并作为内核信息记录。
- 允许模式(permissive):违反策略的行为不会被禁止,但是会提示警告信息。
- 禁用模式(disabled):禁用SELinux,与不带SELinux系统是一样的。
通常情况下在不怎么了解SELinux时,将模式设置成disabled,这样在访问一些网络应用时就不会出问题。SELinux的主配置文件是 /etc/sysconfig/selinux,其默认设置值为 SELinux=enforcing。
- 命令getenforce可以查看当前系统SELinux的工作状态。
getenforce - 命令setenforce可以设置当前系统SELinux的工作状态。
Setenforce
使用编辑器查看SELinux的主配置文件/etc/sysconfig/selinux得到如下结果
说明:红色方框标识的部分 SELinux=enforcing 代表目前系统执行的是强制策略;SELinuxTYPE=targeted 代表当前系统遵循的是目标策略。
⛳️ SELinux设置
1、 获取当前SELinux运行状态
getenforce
可能返回的结果有三种:Enforcing、Permissive和Disabled。Disabled代表SELinux被禁用,Permissive代表仅记录安全警告但不阻止可疑行为, Enforcing代表记录警告且阻止可疑行为
2、 改变SELinux运行状态
💖 Shell简介
Shell:
n.外壳; 炮弹; (贝、卵、坚果等的) 壳; (人的) 表面性格;
vt.去壳,脱落; 炮击;
vi.剥皮; 炮轰;
Shell在Linux中俗称“壳”,Shell处于Linux Kernel的外围,就像个“壳”一样,如下图所示:
Linux Kernel承担的任务是上层的服务、应用以及硬件控制等,但Linux Kernel是无法直接去控制的,也即用户是不允许直接与Linux Kernel进行通信的。这里就需要借助Shell这个“壳”。Shell所起到的是个中间媒介的作用,也就是将用户的需求转换成Linux Kernel能够识别的指令。
Shell本身只是一个感念,其中的实施是依靠图形或者命令模式去实现。
Shell是操作系统最外面的一层。Shell管理着用户与操作系统之间的交互:等待输入,向操作系统解释用户的输入,并且处理各种各样的操作系统的输出结果。Shell提供了用户与操作系统之间的通信方式,这种通信方式可以以交互方式(从键盘输入,并且可以立即得到响应),或者以Shell Script(非交互)方式执行。Shell Script是放在文件中的一串Shell和操作命令,他们可以被重复使用。本质上Shell Script是命令行,命令简单地组合到一个文件里面。
Shell基本上是一个命令解释器,类似于DOS下的command。它接收用户命令(如 ls 等),然后调用相应的应用程序。
⛳️ Shell分类
(1) 图形界面Shell(Graphical User Interface Shell,GUI Shell),图形界面的最终使用也是转换成命令行模式去执行的。例如GNOME、KDE等。
(2) 命令行式Shell(Command Line Interface Shell,CLI Shell),z最常用的命令行是GNU Bourne-Again Shell,简称 BASH,也就是Linux中常用的命令行。
⛳️ BASH基础
BASH是许多Linux平台内定的Shell,它能运行于大多数类UNIX操作系统之上,简单的说,就是我们必须通过Shell将输入的命令与内核通信,可以让内核控制硬件准确无误地工作来提高效率。
BASH本身其实也是一个命令模式下的命令,其代表的就是打开命令模式终端的意思。
1、 提示符
Linux操作系统下的BASH提示符分为#和KaTeX parse error: Expected 'EOF', got '#' at position 10: 两种。 #̲:代表超级账户root,权限比…:代表普通账户,权限比较小
2、 结构解读
root代表目前登录的是root账户,zhangyan代表目前使用的这台计算机的主机名称,@代表使用root账户登录到zhangyan这台主机。
3、 BASH命令的组成
BASH命令的一般结构:
$ command [ [-]option(s)] [option argument(s)] [command argument(s)]
1、$:计算机提示符,代表的是使用普通账户登录系统。
2、command:对shell而言正确的Linux命令,BASH命令均为小写。
3、[-option(s)]:定制命令动作的一个或多个修饰符号,是BASH的命令选项。
4、[option argument(s)]:定制命令选项的一个或多个修饰符号,是命令选项修饰。
5、[command argument(s)]:受命令影响的一个或多个对象,命令对象。
注意:以上各部分用空格分开。command、option、option argument和command argument,但在option或option argument之间是不需要空格的。多个option或option argument的顺序是不要紧的,也就是和顺序无关。在option和option argument间的空格是可选的。
ls为command,-al为-option(s)。
💖 touch命令的应用
touch的一般用法是用来创建一个新文件。同时,touch还可以用来修改文件的时间戳。
和时间戳有关的三个时间:
访问时间access time,简称为 atime:一个文件的数据最后一次被访问的时间。例如,显示一个文件的内容或者运行一个shell脚本会更新文件的atime。可以用 ls –lu 命令查看。
更改时间status time,简称为 ctime;在UNIX中基本无法知道一个文件的精确创建时间。更改时间是指文件或目录的属性(所有者、权限等)被更改的时间。ctime在文件的内容改变的时候也会改变。如果一个文件需要备份的话,dump命令需要用到ctime。可以用 ls –lc 命令来查看ctime。
修改时间modification time,简称为 mtime:文件的目前内容最后被修改的时间。这是在一个长目录列表中显示的时间。
总结:
文件的atime是在读取文件或者执行文件时更改的;
文件的mtime是在写入文件时随文件内容的更改而更改的;
文件的ctime是在写入文件,更改所有者、权限或链接设置时随inode的内容更改而更改的。
名称:touch
使用权限:所有使用者
使用方式:touch [option] filename
参数 | 说明 |
---|---|
-a | 仅修改访问时间。 |
-r | 修改文件的时间为指定文件的日期时间。 |
-d | 指定文件日期时间为yymmdd。 |
-t | 指定文件日期时间为yymmddhhmm。 |
-c:仅改变修改时间,如果文件不存在则创建。 | |
-m | 仅修改mtime。 |
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
|
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!