企业Linux运维几百个重点面试题汇总(持续更新)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业Linux运维几百个重点面试题汇总(持续更新)相关的知识,希望对你有一定的参考价值。

目录:

第一部分:合格linux运维十五个必会原理知识(老男孩教育出品)
http://user.qzone.qq.com/49000448/blog/1426386594
 
第二部分:合格linux运维必会mysql 实战面试题近百个(老男孩教育出品)
http://user.qzone.qq.com/49000448/blog/1427333863

第三部分:企业优秀运维人员20道必会iptables面试题 数十个(老男孩教育出品)
http://oldboy.blog.51cto.com/2561410/1637493
 
第四部分:linux shell高级编程企业实战面试题 数十个(老男孩教育出品)
http://oldboy.blog.51cto.com/2561410/1632876

第五部分:其他linux基础部分待整理(老男孩教育出品)

 

 

内容:

第一部分:合格linux运维十五个必会原理知识(老男孩教育出品)

技术分享
 
第二部分:合格linux运维必会MySQL 实战面试题近百个(老男孩教育出品)
http://user.qzone.qq.com/49000448/blog/1427333863

数据库的重要性是所有技术里最核心最需要掌握的(理解原理,并且被面试时能清晰的表达出来),直接决定运维人员薪水的高低!

所有题都要给出专业的解答方案,不是很水的那种泛泛的解答。

面试题001:什么是MySQL多实例,如何配置MySQL多实例?
 
面试题002:如何加强MySQL数据的安全,请你给出可行的思路?

面试题003:企业中MySQL root密码忘了怎么解决,多实例密码忘了又如何解决? 

面试题004:MySQL库授权oldboy用户管理bbs库的所有表,172.16.1.0整个网段访问,密码是123456,请给出详细命令(不低于2种方法)? 

面试题005:delete from test和truncate table test区别? 

面试题006:MySQL 的SQL语句如何优化? 提示:注意解答问题的高度和宽度

 

面试题007:网站打开慢,请给出排查方法,如果是因为数据库慢导致,如何排查并解决,请分析并举例?提示:注意解答问题的高度和宽度

面试题008:MySQL Sleep线程过多如何解决? 

 

面试题009:key_buffer_size参数作用,如何修改这个参数不重启数据库就可以生效?

面试题010MySQL binlog的工作模式有哪些?各有什么特点,企业中如何选择? 

面试题011:工作中数据库被误操作执行了一个删除的SQL语句,你如何完整恢复丢失的数据?提示:注意解答问题的高度、宽度、实战性。
 
面试题012:企业中MySQLDUMP备份时使用了-A -B参数,请问此时如何进行单表单库恢复?

面试题013:详细MySQL主从同步的原理及配置主从的完整步骤。 


面试题014:生产场景不停不锁主库,不夜里操作,如何白天从容批量创建从库?提示:注意解答问题的高度和宽度

面试题015:MySQL出现同步延迟有哪些原因?如何解决?提示:以经历的生产案例框架解答。

面试题016:企业生产MySQL集群架构如何设计备份方案?你是怎么做的?

                   你的数据库是如何备份的(请答出200服务器以上规模企业数据库备份的解决方案)
                   提示:注意解答问题的高度和宽度

面试题017:MySQL主从复制故障如何解决?如何监控主从复制是否故障? 提示:注意解答问题的高度和宽度


面试题018:MySQL如何实现双向互为主从复制A<==>B?
 

面试题019:MySQL如何实现级联同步A-->B-->C?
  
 
面试题020:MySQL数据库如何实现读写分离,你的公司是怎么实现的(请答出200服务器以上规模企业数据库的解决方案) 

 
面试题021:生产场景,一主多从环境,从库宕机,请问你如何恢复?

面试题022:生产场景,一主多从环境,主库宕机,请问你如何恢复(类似MHA高可用原理),注意:高度和宽度

面试题023:什么是数据库的事务,事务有哪些特性?

面试题024:解释下有关数据库的ACID是什么意思?

面试题025:MySQL有哪些常用引擎?企业中如何批量更改表的引擎?

面试题026: MyISAMInnodb数据库引擎有什么特点与区别,企业中如何选择



面试题027:如何调整生产线中MySQL数据库的字符集,例如:从UTF8改成GBK,请给出完整步骤。

面试题028:请描述MySQL里中文数据乱码的背后原理,以及工作中如何防止数据库数据乱码?

 
 
面试题029:企业生产MySQL 如何优化? 
 

 

面试题030 :MySQL集群和高可用方案有哪些,再生产场景你都用过哪些方案? 提示:注意解答问题的高度和宽度

 

面试题031:你维护的企业里MySQL服务架构能说下么?

 

面试题032:如何分表分库备份及批量恢复(口述脚本实现过程)?此题有视频免费分享,找顾问获取。 

面试题033:如果数据库主库自行了drop database oldboy;语句,请问如何进行恢复数据,请给出详细过程,并设计规避误删的方案(已经使用mysqldump做了全备,并开启了binlog日志)。提示:注意解答问题的高度、宽度、实战性。

面试题034: 如果数据库主库自行了update  oldboy set name=‘gongli‘;;语句,请问如何进行恢复数据,请给出详细过程,并设计规避误删的方案(已经使用xtrabackup做了全备(200G+数据),及若干增量备份,并开启了binlog日志)。提示:注意解答问题的高度、宽度、实战性。


以上面试题的答案:见http://user.qzone.qq.com/49000448/blog/1415696007课程
 
===================下文部分有免费讲解视频提供==================
下面MySQL基础中的基础,更是入门必会内容,加老男孩教育客服获取QQ:41117397  41117483  70271111 80042789或加入 官方群询问 08群384467551 07群145178854(标明51CTO)
==================================================================================

 课前考试题:老男孩教育第十二关MySQL必会基础命令考察

(要求:每两个同学一组,一个口头考,一个上机实战作答 5个题为一组,完成后换位)

1.登陆数据库。

2.查看数据库版本及当前登录用户是什么。

3.创建GBK字符集的数据库oldboy,并查看已建库的完整语句。

4.创建用户oldboy,使之可以管理数据库oldboy

5.查看创建的用户oldboy拥有哪些权限。

6.查看当前数据库里有哪些用户。

7.进入oldboy数据库

8.创建一innodb引擎字符集为GBKtest,字段为idnamevarchar(16),查看建表结构及SQL语句。

9.插入一条数据 1,oldboy

10.批量插入数据 2,老男孩,3,etiantian。?要求中文不能乱码。

11.查询插入的所有记录,查询名字为oldboy的记录。查询id大于1的记录。

12.把数据id等于1的名字oldboy更改为oldgirl

13.在字段name前插入age字段,类型tinyint(2)

14.备份oldboy库及MySQL库。

15.删除表中的所有数据,并查看。

16.删除表testoldboy数据库并查看

17.Linux命令行恢复以上删除的数据。

18.GBK字符集修改为UTF8(可选,注意,此题有陷阱)。

19.MySQL密码丢了,如何找回实战?

20. MySQL内中文数据乱码的原理及如何防止乱码?(可选)。

21.在把id列设置为主键,在Name字段上创建普通索引。

22.在字段name后插入手机号字段(shouji),类型char(11)

23.所有字段上插入2条记录(自行设定数据)

24.在手机字段上对前8个字符创建普通索引。

25.查看创建的索引及索引类型等信息。

26.删除Nameshouji列的索引。

27.Name列的前6个字符以及手机列的前8个字符组建联合索引。

28.查询手机号以135开头的,名字为oldboy的记录(此记录要提前插入)。

29.查询上述语句的执行计划(是否使用联合索引等)。
30.把test表的引擎改成MyISAM。


第三部分:企业优秀运维人员20道必会iptables面试题 数十个(老男孩教育出品)
http://oldboy.blog.51cto.com/2561410/1637493
 

要求:大家务必会笔答,会熟练口头表达,面试完败其他竞争的面试者

 (2015年4月23日 20期运维班全体学员解答,时光过得真快,转眼,20期就要毕业上战场了,你们的刀磨快了么?

(一)企业面试口试题

1、详述iptales工作流程以及规则过滤顺序?

 

2iptables有几个表以及每个表有几个链?

 

3iptables的几个表以及每个表对应链的作用,对应企业应用场景?

 

4、画图讲解iptables包过滤经过不同表和链简易流程图并阐述。

 

5、请写出查看iptables当前所有规则的命令。

 

6、禁止来自10.0.0.188 ip地址访问80端口的请求

 

7、如何使在命令行执行的iptables规则永久生效?

 

8、实现把访问10.0.0.3:80的请求转到172.16.1.17:80

 

9、实现172.16.1.0/24段所有主机通过124.32.54.26外网IP共享上网。

 

10、描述tcp 3次握手及四次断开过程?

(课外参考:http://user.qzone.qq.com/49000448/blog/1426987479

 

11.详细描述HTTP工作原理?

 

12.请描述iptables的常见生产应用场景。

 

13、请描述下面iptables命令的作用

iptables -N syn-flood

iptables -A INPUT -i eth0 -syn -j syn-flood

iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN

iptables -A syn-flood -j DROP

 

14、企业WEB应用较大并发场景如何优化iptables?

 

(二)企业运维经验面试题:

15、写一个防火墙配置脚本,只允许远程主机访问本机的80端口(奇虎360面试题)

http://user.qzone.qq.com/49000448/blog/1429755081

 

16、请描述如何配置一个linux上网网关?

 

17、请描述如何配置一个专业的安全的WEB服务器主机防火墙?

 

18、企业实战题6:请用至少两种方法实现!

写一个脚本解决DOS攻击生产案例

提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -A INPUT -s 10.0.1.10 -j DROP

(此题来自老男孩教育SHELL编程必会考试题之一)

 

19/var/log/messages日志出现kernel: nf_conntrack: table full, dropping packet.请问是什么原因导致的?如何解决?

 

20、压轴上机实战iptables考试题
技术分享
 
 
 
第四部分:linux shell高级编程企业实战面试题 数十个(老男孩教育出品)
http://oldboy.blog.51cto.com/2561410/1632876
 

共21道考试题,面授上课几乎全部讲解过类似的案例,考试题略微变更而已。

 

企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
阶段1:开发一个守护进程脚本每30秒实现检测一次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[[email protected]~]# mysql -uroot -p‘oldboy‘ -S /data/3307/mysql.sock -e "show slavestatus\\G;"
*************************** 1. row ***************************
               Slave_IO_State:Waiting for master to send event
                  Master_Host:10.0.0.179   #当前的mysql master服务器主机
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File:mysql-bin.000013
         Read_Master_Log_Pos: 502547
               Relay_Log_File:relay-bin.000013
                Relay_Log_Pos:251
        Relay_Master_Log_File:mysql-bin.000013
             Slave_IO_Running:Yes
           Slave_SQL_Running: Yes
              Replicate_Do_DB: 
         Replicate_Ignore_DB: mysql
          Replicate_Do_Table: 
      Replicate_Ignore_Table: 
     Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
         Exec_Master_Log_Pos: 502547
              Relay_Log_Space:502986
              Until_Condition:None
               Until_Log_File: 
                Until_Log_Pos: 0
          Master_SSL_Allowed: No
          Master_SSL_CA_File: 
          Master_SSL_CA_Path: 
              Master_SSL_Cert: 
           Master_SSL_Cipher: 
               Master_SSL_Key: 
       Seconds_Behind_Master: 0   #和主库比同步延迟的秒数,这个参数很重要
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error:

企业面试题2:
使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为:

1
2
3
4
5
6
[[email protected] oldboy]# sh /server/scripts/oldboy.sh
[[email protected] oldboy]# ls 
coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html  vioesjmcbu_oldboy.html
gmkhrancxh_oldboy.html  tmdjormaxr_oldboy.html  wzewnojiwe_oldboy.html
jdxexendbe_oldboy.html  ugaywanjlm_oldboy.html  xzzruhdzda_oldboy.html
qcawgsrtkp_oldboy.html  vfrphtqjpc_oldboy.html

 

企业面试题3:请用至少两种方法实现!
将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。

 

 

企业面试题4:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。



企业面试题5:
写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些(方法有很多)



企业实战题6:请用至少两种方法实现!
写一个脚本解决DOS攻击生产案例
提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -I INPUT -s 10.0.1.10 -j DROP。



企业实战题7:
开发mysql多实例启动脚本:
已知mysql多实例启动命令为:mysqld_safe--defaults-file=/data/3306/my.cnf &
停止命令为:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sockshutdown
请完成mysql多实例启动启动脚本的编写
要求:用函数,case语句、if语句等实现。

企业实战题8:如何实现对MySQL数据库进行分库备份,请用脚本实现



企业实战题9:如何实现对MySQL数据库进行分库加分表备份,请用脚本实现



企业面试题10:请用至少两种方法实现!
bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)。
I am oldboy teacher welcome to oldboy training class.



企业面试题11:开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数做判断。 

企业面试题12:打印选择菜单,一键安装Web服务:

[[email protected]]# sh menu.sh

    1.[install lamp]

    2.[install lnmp]

    3.[exit]

    pls input the num you want:

要求:

1、当用户输入1时,输出“startinstalling lamp.”然后执行/server/scripts/lamp.sh,脚本内容输出"lampis installed"后退出脚本;

2、当用户输入2时,输出“startinstalling lnmp.”然后执行/server/scripts/lnmp.sh输出"lnmpis installed"后退出脚本;

3、当输入3时,退出当前菜单及脚本;

4、当输入任何其它字符,给出提示“Input error”后退出脚本。

5、要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等。 


企业面试题13:

1、监控web服务是否正常,不低于3种监控策略。

2、监控db服务是否正常,不低于3种监控策略。
要求间隔1分钟,持续监控。

 

企业面试题14:监控memcache服务是否正常,模拟用户(web客户端)检测。

使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率。


企业面试题15:面试及实战考试题:监控web站点目录(/var/html/www)下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟时间完成)。
 

企业面试题16:企业案例:写网络服务独立进程模式下rsync的系统启动脚本

例如:/etc/init.d/rsyncd{start|stop|restart} 。
要求:
1.要使用系统函数库技巧。
2.要用函数,不能一坨SHI的方式。
3.可被chkconfig管理。

 

企业面试题17:老男孩教育天津项目学生实践抓阄题目:

好消息,老男孩培训学生外出企业项目实践机会(第6次)来了(本月中旬),但是,名额有限,队员限3人(班长带队)。

因此需要挑选学生,因此需要一个抓阄的程序:

要求:

1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。

2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入
 

 

企业面试题18:老男孩linux企业面试题:

已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

21029299

00205d1c

a3da1677

1f6d12dd

890684b

 

 

企业面试题19:批量检查多个网站地址是否正常 

要求:shell数组方法实现,检测策略尽量模拟用户访问思路

http://www.etiantian.org

http://www.taobao.com

http://oldboy.blog.51cto.com

http://10.0.0.7 

 

 

企业面试题20(中企动力)::用shell处理以下内容

1、按单词出现频率降序排序!

2、按字母出现频率降序排序!

the squid project provides a number of resources toassist users design,implement and support squid installations. Please browsethe documentation and support sections for more infomation

企业面试题21:输出正方形、等腰三角形、直角梯形,见如下内容

http://oldboy.blog.51cto.com/2561410/1718607

 

企业面试题22:开发通过web界面展示监控Nginx代理节点状态,效果图如下。

 

lvs+keepalived集群部分Shell企业案例:

企业面试题23、【LVS主节点】手工开发ipvsadm管理lvs的脚本ip_vs

   实现:/etc/init.d/lvs {start|stop|restart}

 

企业面试题24、【LVS主节点】模拟keepalived健康检查功能管理LVS节点,

当节点挂掉(检测2次,间隔2秒)从服务器池中剔除,好了(检测2次,间隔2秒)加进来

提示:利用ipvsadm命令实现添加和减少LVS节点。

 

企业面试题25、【LVS客户端节点】开发LVS客户端设置VIP以及抑制ARP的管理脚本

    实现:/etc/init.d/lvsclient {start|stop|restart}

企业面试题26、【LVS备节点】模拟keepalved vrrp功能,监听主节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存) 

 

企业面试题27、请用shell或Python编写一个正方形(oldboy_square.sh),接收用户输入的数字。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[[email protected] ~]# sh oldboy_square1.sh 
Please Enter a number:5
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
[[email protected] ~]# sh oldboy_square2.sh  
Please Enter a number:9
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■

企业面试题28、请用shell或Python编写一个等腰三角形(oldboy2_triangle.sh),接收用户输入的数字。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[[email protected] ~]# sh oldboy2_triangle.sh 
Please Enter a number:5
    *
   ***
  *****
 *******
*********
[[email protected] ~]# sh oldboy2_triangle.sh 
Please Enter a number:8
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************

企业面试题29、请用shell或Python编写一个画直角梯形程序(oldboy4.sh),接收用户输入的参数n,m

例如:

1
2
3
4
[[email protected] ~]# sh oldboy4.sh 4 6
****
*****
******

27,28,29三道题参考http://oldboy.blog.51cto.com/2561410/1718607

 

企业面试题30:写一套简单的企业代码上线发布系统案例,利用SVN对代码及配置文件进行管理,在办公室服务器上从svn取出指定版本的代码和配置,发布到IDC机房分发机服务器上,在分发服务器或者负载均衡器上或者应用服务器本地实现代码平滑发布、上线、回滚脚本(具体设计请参考课堂讲解的企业代码发布方案)。

 

 

企业面试题31:请设计一套Git+Saltstack实现代码的线上发布及管理方案。

(可参考跟老男孩学习Linux运维:Shell高级编程实战一书内容)

转载的网友,请务必保留本文章的全部内容,谢谢。



第五部分:其他linux基础部分待整理(老男孩教育出品)

 
面试题90:已知oldboy目录下的内容为:

[email protected] oldboy]# ll

total 4

-rw-r--r-- 1 root root  0 Oct 2 12:50 stu_102999_1_finished.jpg

-rw-r--r-- 1 root root  0 Oct 2 12:50 stu_102999_2_finished.jpg

-rw-r--r-- 1 root root  0 Oct 2 12:50 stu_102999_3_finished.jpg

-rw-r--r-- 1 root root  0 Oct 2 12:50 stu_102999_4_finished.jpg

-rw-r--r-- 1 root root  0 Oct 2 12:50 stu_102999_5_finished.jpg

希望通过命令或脚本将上面所有文件的名字中的_finished全部去掉,请问如何实现?(不低于3种实现方法)

  
面试题091:如何调整已有MySQL数据库的字符集,例如:从UTF8改成GBK,请给出完整步骤。


面试题092:请描述MySQL里中文数据乱码的背后原理,以及工作中如何防止数据库数据乱码?


面试题093:企业面试题:只查看oldboy.txt文件(共100行)内第20到第30行的内容(不低于3种命令实现)
 

 

面试题094:MySQL库授权oldboy用户管理bbs库的所有表,10.0.0.0整个网段访问,密码是123456,请给出详细命令(不低于2种方法)?
 

面试题095:请把ls -l oldboy.txt的9位权限字符转换为数字权限(请给出不低于两种方法)
[[email protected] ~]$ ls -l oldboy.txt 
-rw-r--r-- 1 oldboy incahome 5 Mar 14 14:48 oldboy.txt
 

面试题096:有一个oldboy.txt文件,把里面所有字母都转换成大写

面试题097:有oldboy.txt文件,里面内容如下
1234569
abcABCabc
要求使用awk打印出以下结果
987654321
cbaCBAcba
 
面试题098:按照要求实现如下要求效果
4.假如现在有个文本,格式如下:
a  1
b  3
c  2
d  7
b  5
a  3 
g  2
f  6
d  9
即左边是随机字母,右边是随机数字,要求写个脚本使其输出格式为:
a  4
b  8
c  2
d  16
f  6
g  2
即将相同的字母后面的数字加在一起,按字母的顺序输出。


面试题099:如何查看某端口(例如:9000)对应的服务(不低于两种方法)? 

面试题100:linux系统下如何查看CPU的总核数(不低于两种方法)? 

声明:转载务必保留原始内容及标题 !

































































































































































































以上是关于企业Linux运维几百个重点面试题汇总(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章

2018年企业运维开发经典面试题

老男孩:Linux企业运维人员最常用150个命令汇总

(转)老男孩:Linux企业运维人员最常用150个命令汇总

2022前端面试题汇总(持续更新中~)

css面试题汇总 (持续更新)

css面试题汇总 (持续更新)