Linux运维工程师面试题第一套

1)Linux启动大致过程?

加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init依据inittab文件来设定系统运行的等级(一般3或者5,3是多用户命令行,5是界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同级别运行的脚本程序–>执行/etc/rc.d/rc.local(本地运行服务)–>执行/bin/login,就可以登录了。

【评析】基本看过《鸟哥私房菜》的目录就能知道,这是第五章管理员的第一个内容。这道题可以扩展一下:init系统运行等级一共有几种,每一种都是什么?

0:关机,只要是0就不能开机

1:单用户模式,不能被远程登陆

2:多用户不能上网模式

3:多用户可以上网模式

4:未使用

5:有图形的linux

6:重启,只要是6就会不断的重启,子子孙孙无穷匮焉的重启

2)Linux系统是由那些部分组成?
Linux系统内核,shell,文件系统和应用程序四部分组成。

3)apache有几种工作模式,分别简述两种工作模式及其优缺点?

apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加--with-mpm=worker选项)

prefork的特点是:(预派生)

1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销

2.可以防止意外的内存泄漏

3.在服务器负载下降的时候会自动减少子进程数

worker的特点是:支持混合的多线程多进程的多路处理模块

如果对于一个高流量的HTTP服务器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。

【评析】我没有怎么深入的接触apache,我是半路出家,接触的是nignx,于是这道题就那么回事吧。

4)LVS三种模式的工作过程?

NAT (Network Address Translation)模式。LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RS的IP地址,转发给RS;RS将应答包发给 LB,LB将应答包中RS的IP转为虚拟服务器的IP地址,回送给用户。

IP隧道 (IP Tunneling)模式。LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RS;RS解出请求信息,直接将应答内容传给用户。此时要求RS和LB都要支持IP隧道协议。

DR(Direct Routing)模式。LB收到请求包后,将请求包中目标MAC地址转换为某个选定RS的MAC地址后将包转发出去,RS收到请求包后 ,可直接将应答内容传给用户。此时要求LB和所有RS都必须在一个物理段内,且LB与RS群共享一个虚拟IP。

【评析】LVS就是Linux Virtual Server,linux虚拟服务器,这道题要是不明白就记下来,详细内容可以看看http://www.it165.net/admin/html/201401/2248.html

5)列出linux常见打包工具并写相应解压缩参数(至少三种)?

这个没啥说的,tar命令就是打包工具,对应的解压缩参数 tar -cvf、 tar -zcvf、 tar -jcvf是对应拆包解压什么文件的要对应记住,不要记混。

6)一个EXT3的文件分区,当用touch新建文件时报错,错误信息是磁盘已满,但是使用df -H查看分区信息时只使用了50%,请分析具体原因?

答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode耗尽了。

7)请使用Linux系统命令统计出establish状态的连接数有多少?

netstat -an |grep ESTABLISHED |wc -l

【评析】netstat命令-a参数是“显示所有链接”(all),-n是不要域名解析,即都是以数字IP的显示。这俩是高频参数。

这里要用大写的ESTABLISHED,因为小写的established显示出来的东西是不对的,可以自己动手试试,所以这里的大小写是一个隐藏点。

然后再用wc -l来统计数。如果这道题要再多补充“查80端口的establish”,那么就是netstat -an|grep 80 |grep ESTABLISHED |wc -l

补充一句,现实生产的时候,如果服务器维持的链接是成千上万的话,少用netstat,多用ss。不过ss命令面试的时候考的不多,有个大概了解即可。

8)统计出一台web server上的各个状态(ESTABLISHED/SYN_SENT/SYN_RECV等)的个数?

netstat -antl|grep ESTABLISTHED|wc -l

netstat -antl|grep SYN_SENT|wc -l

netstat -antl|grep SYN_RECV|wc -l

【评析】这道题跟上一道题的相似度很高,netstat命令的-t参数是查询tcp协议的链接,-l参数是查询listen状态下的链接。netstat -an的话会出现大概三个部分的内容,一部分是tcp协议内容,一部分是udp协议的内容,还有一部分是unix socket方面的链接,Active UNIX domain sockets (servers and established)。unix那部分内容很多,如果用了-t /-u的参数,那么后面的unix内容就会不显示。

9)查找/usr/local/apache/logs目录最后修改时间大于30天的文件并删除

find /usr/local/apache/logs -type f -mtime +30 -ok rm {} \;

【评析】find命令以及相关搭配命令是笔试中的重点,因为在现实中运用的情况最多,所以必考必考必考!!!

使用mtime +30来描述“修改时间大于30天”,使用-type -f来描述“文件”,然后使用-ok命令将所有满足的文件都执行下一步操作。这里是删除文件,所以比较人性化的用ok,删之前询问一下,如果简单暴力就可以直接-exec,直接枪毙掉。用了-exec 的话是不用-f的,多此一举。

10)编写个shell脚本将/usr/local/test 目录下大于100K的文件转移到/tmp目录

touch AAA.sh

#!/bin/bash

find /usr/local/test/ -size +100K -exec mv {} /tmp \;

【评析】-exec and -ok后面的花括号里面的内容就是使用find命令查找出来的文件名。

11)添加一条到192.168.3.0/24的路由,网关为192.168.1.254?

route add  -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254  或者  route add -net 192.168.3.0/24 gw 192.168.1.254

【评析】route命令是临时性的增加路由,如果需要永久性的添加路由,方法一,#vim etc/rc.local,在文件里加上 route add -net 192.168.3.0/24 gw 192.168.1.254。方法二,#vim etc/sysconfig/network 在后面加上GATEWAY=192.168.1.254,用这个方法来增加网关。然后# route -n检查一下。

12)在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句?

15 3 * * 6 /home/shell/collect.pl  > /dev/null  2>&1

13)在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现 ?

crontab -e

1 6-12/2 * 11 *  bash /usr/bin/httpd.sh

【评析】crontab、at这种计划任务命令也是面试高频题目,crontab一共有5个*,分别表示“分钟”、“小时”,“日期”、“月份”、“星期几”。基本的结构要明白,而且“当大数有条件,小数任意”的情况下,小数不要用*,用0or 1,如果这道题写成“* 6-12/2 * 11 * bash /usr/bin/httpd.sh”,你的apache会很爽,它会在满足条件的情况下每一分钟都启动一下。

14)匹配AAA文本中的key并打印出该行及下面的5行?

grep -A 5 key |AAA

【评析】-A是查找关键词下面的行,-B是查找关键词上面的行,-C是上下的行,注意这里是grep,而不是find。

15)查询AAA文件里以abc结尾的行?

grep "abc$" AAA

【评析】这里不是grep "abc$" | AAA!,这里没有“|”,要注意。

16)打印出AAA文件第1到第三行?

head -3 AAA

【评析】没啥说的,太简单了。用sed -n ‘1,3p‘ AAA更稍微的有一点技术含量。但是用sed命令,要注意搭配-n,要是不搭配-n,你可以试试。

时间: 2024-10-09 00:56:27

Linux运维工程师面试题第一套的相关文章

Linux运维工程师面试题第九套

本次全部都是mysql的题,非常的基础,enjoy it~ 1.SELECT id,name FROM test1: 和 SELECT id name FROM test1:这两个语句有什么区别? 第一个语句会出现两个列,第二个只有一个列,列的内容是id的内容,但是列的名称是name,也就是说第二句话其实就是"SELECT id AS name FROM test1". 2.如果想把test1表格里满足age大于等于30的username都迁移到test2表格里的username列,需

Linux运维工程师面试题第五套

本次试题全部都是写脚本,一共有十道题,enjoy it~ 1.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下. #Author:Name #E-mail:E-mail Address #Description:          写程序的时候加上姓名,联系方式和描述是一个好习惯. #!/bin/bash ls -l|awk '$5>10240 {print $9}' >name.txt    #先把大于10K的文件名都保存到name.txt的文件 for filename

linux运维工程师面试题练习

前两天去某游戏公司面试.面试官为运维部女主管.由于笔试写得一塌糊涂,直接被鄙视得不行.女面试官连说话都懒得说.其实很多笔试题都是基础类型,考点也都知道,奈何不好好总结准备.掉坑里了!闲着也是闲着,不如几个题目来做做吧! 题目链接: http://www.yunweipai.com/archives/4443.html 一.Linux操作系统知识 常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? a,centos redhat ubuntu b.centos

《Linux运维工程师面试题汇总》 第一套

1.简述常用服务端口 答案: HTTP: 80    FTP: 21    DNS: 53    POP3:110    SMTP: 25    SSH: 22    NGINX: 80    SQUID: 3128    NAGIOS: 5666 MEMCHACHED:11211    MYSQL: 3360    TOMCAT: 8080    NFS: 2049    TLENET: 23    HTTPS:443    SAMBA:  UDP 138  TCP 139 POSTFIX:

Linux运维工程师笔试题第十二套

本套都是shell的命令,enjoy it~ 1)假设某变量aaa="史蒂芬周星驰",现在只想要输出后面的"周星驰",应该怎么办? aaa="史蒂芬周星驰" echo ${aaa:3:3} [评析]已知变量总字符数和要切的起始字符数,就可以用这种方法切变量了.这种方法比较常见的应用于变量是长路径的情况下. 2)使用curl获取www.163.net的响应头信息 curl -I http://www.163.net [评析]curl -i 网址除了

Linux运维工程师笔试题第十三套

这套题的出处是http://blog.51cto.com/nolinux/1670406  ,看到了周末闲着没事就做一做,答案都是我结合自己的工作得到的,不一定百分百准确,现在拿出来跟各位分享一番. 1.请写出五种系统性能分析工具,并简述其作用和特点[我的答案] top.free.vmstat.iostat.perf等等等等,如果你想装逼,可以回答fio,blktrace,oprofile.具体的作用和特点这里不多说了,但是我着重要推荐vmstat,很实用很棒的一个命令.可以去移步看看https

Linux运维工程师面试题第七套

1.解释top命令和vmstat命令 top命令是实时监控当前系统的总体进程状态以及各个程序的进程状态,vmstat可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.其中它主要用途是查看虚拟内存情况. [评析]vmstat若是直接使用的话,就是现在当前那一刻的服务器状态值,一般来说vmstat都是搭配时间和采集次数使用,比如#vmstat 2 5,就是每两秒采集一下服务器状态,一共采集5下.如果是#vmstat 2,那就是一直在采集. 2.

Linux运维工程师面试题第八套

1.从AAA.log文件中提取"james"或者"curry",同时不包含"kobe"的行,然后提取":"分割的第五个字段. cat AAA.log|grep -E "james|curry"|grep -v "kobe"|awk -F ":" '{print $5}' [评析]搜寻"A or B"的方法就是grep -E "A|B&qu

Linux运维工程师笔试题第十套

1.Nginx是如何实现高并发的? service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些worker进程是平等的,都是被master fork过来的.在master里面,先建立需要listen的socket(listenfd),然后再fork出多个worker进程.当用户进入nginx服务的时候,每个worker的listenfd变的可读,并且这些worker会抢一个叫accept_mute