linux系统工程师面试题37页word.docx
- 文档编号:14000372
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:22
- 大小:28.99KB
linux系统工程师面试题37页word.docx
《linux系统工程师面试题37页word.docx》由会员分享,可在线阅读,更多相关《linux系统工程师面试题37页word.docx(22页珍藏版)》请在冰点文库上搜索。
linux系统工程师面试题37页word
linux系统工程师面试题
第一套
1.查看Linux系统当前单个共享内存段的最大值(命令)
ipcs-m
ipcs-a
2.用什么命令查询指定IP地址的服务器端口
题意应该是nmap和nbtscan命令来扫吧。
3.crontab中用什么命令定义某个程序执行的优先级别
nice/renice:
进程执行优先级
概念:
进程优先级:
系统按进程优先级的不同分配CPU时间,优先级高的进程会得到更多的CPU使用时间,以提高速度,缩短总的执行时间。
进程优先级范围:
-20至19
最高等级:
-20
最低等级:
19
系统管理员有权将进程优先级设置为-1至-20,而普通用户只能设置0至19。
进程运行的默认等级为0。
用nice执行的进程其默认等级为10(即nice<程序名>,不指定等级时)。
格式:
nice<程序名>
nice-<等级><程序名>
如:
(命令后加&表示以后台运行)
vi&优先等级0,默认等级。
nicevi&优先等级10,使用nice执行程序时的默认等级。
nice-50vi&优先等级19,-号表示选项,等级50超过最低等级19,因此系统以等级19执行。
nice-18vi&优先等级18。
nice--50vi&优先等级-20,选项值为-50,超过最高等级-20,因此系统以等级-20执行。
nice--18vi&优先等级-18。
通过ps-l可查看以上命令的执行情况(注意查看各vi进程NI值的不同)。
重新调整正在执行的进程的优先级:
调整指定PID进程的等级
renice<等级>
注意:
<等级>是参数,不是选项,没有前缀-号。
调整指定用户的所有进程的等级
renice<等级><用户名1><用户名2>...
调整指定组的所有用户的所有进程的等级
renice<等级>-g<组名1>
4.如何让history命令显示具体时间
HISTTIMEFORMAT="%Y-%m-%d%H:
%M:
%S"
expectHISTTIMEFORMAT
重新开机后会还原,可以写/etc/profile
5.查看Linux系统当前指定用户的邮件队列
mailq命令
打印两种类型的列表:
mailq命令列出如下所示的邮件队列:
MailQueue(1request)
---QID------Size-------Q-Time-----------Sender/Recipient-----
AA025083ThuDec1710:
01root
(Userunknown)
bad_user
mailq-v命令列出如下所示的邮件队列:
MailQueue(1request)
---QID------Size---Priority----Q-Time-----Sender/Recipient--
AA0250831005Dec1710:
01root
(Userunknown)
bad_user
6.查看Linux系统当前加载的库文件
lsof
7.Ext3文件系统如何恢复RM命令删除文件
(1).Ext3文件系统结构的简单介绍
在Linux所用的Ext3文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。
每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。
对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。
如果文件大于12个块,那么节点在12个块号之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是1024/4=256)。
如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
(2).恢复被误删文件的方法
大多数Linux发行版都提供一个debugfs工具,可以用来对Ext3文件系统进行编辑操作。
不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。
使用如下命令:
(假设文件在/usr分区)
mount-r-n-oremount/usr
-r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。
如果系统说xxxpartionbusy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:
fuser-v-m/usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser-k-v-m/usr
然后就可以重新挂载这些文件系统了。
如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linuxsingle进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。
另外,恢复出来的数据不要写到/上面,避免破坏那些有用的数据。
如果机器上有dos/windows,可以写到这些分区上面:
mount-r-n/dev/hda1/mnt/had
然后就可以执行debugfs:
(假设Linux在/dev/hda5)
#debugfs/dev/hda5
就会出现debugfs提示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:
lsdel
debugfs:
2692deletedinodesfound.
InodeOwnerModeSizeBlocksTimedeleted
164821010060081921/1SunMay1319:
22:
462001
…………………………………………………………………………………
36137010064441/1TueApr2410:
11:
152001
196829010064414950038/38MonMay2713:
52:
042001
debugfs:
列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。
然后就可以根据文件大小和删除日期判断那些是我们需要的。
比如我们要恢复节点是196829的文件:
可以先看看文件数据状态:
debugfs:
stat
Inode:
196829Type:
regularMode:
0644Flags:
0x0Version:
1
User:
0Group:
0Size:
149500
FileACL:
0DirectoryACL:
0
Links:
0Blockcount:
38
Fragment:
Address:
0Number:
0Size:
0
ctime:
0x31a9a574--MonMay2713:
52:
042001
atime:
0x31a21dd1--TueMay2120:
47:
292001
mtime:
0x313bf4d7--TueMar508:
01:
272001
dtime:
0x31a9a574--MonMay2713:
52:
042001
BLOCKS:
594810594811594814594815594816594817………………………………….
TOTAL:
38
然后就可以用dump指令恢复文件:
debugfs:
dump/mnt/hda/01.sav
这样就把文件恢复出来了。
退出debugfs:
debugfs:
quit
另一种方法是手工编辑inode:
debugfs:
mi
Mode[0100644]
UserID[0]
GroupID[0]
Size[149500]
Creationtime[0x31a9a574]
Modificationtime[0x31a9a574]
Accesstime[0x31a21dd1]
Deletiontime[0x31a9a574]0
Linkcount[0]1
Blockcount[38]
Fileflags[0x0]
Reserved1[0]
Fileacl[0]
Directoryacl[0]
Fragmentaddress[0]
Fragmentnumber[0]
Fragmentsize[0]
DirectBlock#0[594810]
…………………………….
TripleIndirectBlock[0]
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletiontime改成0(未删除),Linkcount改成1。
改好后退出debugfs:
debugfs:
quit
然后用fsck检查/dev/hda5
fsck/dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。
8.查看当前系统某一硬件的驱动版本。
比如网卡
dmidecode
9.DNS服务器有哪三种类型
主从缓存
10.apache目录访问身份验证的实施步骤(用htpasswd设置)
htpasswd-c/目录user
alias/目录
11.使用tcpdump监听主机IP为192.168.1.1,tcp端口为80的数据,写出相应命令
tcpdumptcpport80host192.168.1.1
12.简述IDS作用和实现原理
入侵检测,设备放在intelnet进来的第一台路由后面。
对进入路由的所有的包进行检测,如果有异常就报警。
13.用sed修改test.txt的23行test为tset;
sed‘23s/test/tset/g’test.txt
第二套
1.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0:
答:
#iptables-tnat-APREROUTING-d192.168.16.1-ptcp–dport80-jDNAT–to192.168.16.1:
8080
或者:
#iptables-tnat-APREROUTING-ieth0-d192.168.16.1-ptcp-mtcp–dport80-jREDIRECT–to-ports8080
2.什么是NAT,常见分为那几种,DNAT与SNAT有什么不同,应用事例有那些?
3.包过滤防火墙与代理应用防火墙有什么区别,能列举几种相应的产品吗?
4.iptables是否支持time时间控制用户行为,如有请写出具体操作步骤
5.说出你知道的几种linux/unix发行版本
6.列出linux常见打包工具并写相应解压缩参数(至少三种)
7.计划每星期天早8点服务器定时重启,如何实现?
8.列出作为完整邮件系统的软件,至少二类
9,当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?
注:
本机跟本地dns还没有缓存。
答:
a.用户输入网址到浏览器
b.浏览器发出DNS请求信息
c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步
d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果,
e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果
f.返回IP结果给浏览器
g.浏览器根据IP信息,获取页面
10,我们都知道,dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?
什么时候采用udp协议?
为什么要这么设计?
答:
这个题需要理解的东西比较的多,分一下几个方面
a,从数据包大小上分:
UDP的最大包长度是65507个字节,响应dns查询的时候数据包长度超过512个字节,而返回的只要前512个字节,这
时名字解释器通常使用TCP从发原来的请求。
b,从协议本身来分:
大部分的情况下使用UDP协议,大家都知道UDP协议是一种不可靠的协议,dns不像其它的使用UDP的Internet应用(
如:
TFTP,BOOTP和SNMP等),大部分集中在局域网,dns查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更大
,这就要求dns客户端需要好的重传和超时算法,这时候使用TCP
11,一个EXT3的文件分区,当使用touchtest.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df-h命令查看磁盘大
小时,只使用了,60%的磁盘空间,为什么会出现这个情况,说说你的理由。
答:
两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,
容易导致inode耗尽了。
12,我们都知道FTP协议有两种工作模式,说说它们的大概的一个工作流程?
FTP两种工作模式:
主动模式(ActiveFTP)和被动模式(PassiveFTP)
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT
N+1命令。
服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。
然后向服务器发送PASV命令,
通知服务器自己处于被动模式。
服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORTP命令通知客户端,自己的数据端口是P。
客户端收到命令后,会通过
N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之
后主机,而只允许由防火墙之后的主机发起的连接请求通过。
因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。
13.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下
1.#/bin/sh
2.#Programm:
3.#Usingformovecurrentlydirectoryto/tmp
4.forFileNamein`ls-l|awk‘$5>10240{print$9}’`
5.do
6.mv$FileName/tmp
7.done
8.ls-al/tmp
9.echo“Done!
“
复制代码
14.apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
apache主要有两种工作模式:
prefork(apache的默认安装模式)和worker(可以在编译的时候加参数–with-mpm-worker选择工作模式)
prefork的特点是:
(预派生)
1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销
2.可以防止意外的内存泄漏
3.在服务器负载下降的时候会自动减少子进程数(prefork的详细原理可以看我的博客另外一篇文章apache的性能优化)
worker的特点是:
支持混合的多线程多进程的多路处理模块
如果对于一个高流量的HTTP服务器,workerMPM是一个比较好的选择,因为workerMPM占用的内存要比prefork要小。
15.名词解释HDLC,VTP,OSPF,RIP,DDOS,systemV,GNU,netscreen,ssh,smartd,apache,WAIT_TIME等等
16.编写shell脚本获取本机的网络地址。
比如:
本机的ip地址是:
192.168.100.2/255.255.255.0,那么它的网络地址是
192.168.100.1/255.255.255.0
方法一:
1.#!
/bin/bash
2.#Thisscriptprintipandnetwork
3.file=”/etc/sysconfig/network-scripts/ifcfg-eth0″
4.if[-f$file];then
5.IP=`grep“IPADDR”$file|awk-F”=”‘{print$2}’`
6.MASK=`grep“NETMASK”$file|awk-F”=”‘{print$2}’`
7.echo“$IP/$MASK”
8.exit1
9.fi
复制代码
方法二:
1.#!
/bin/bash
2.#Thisprogrammwillprintfip/network
3.#
4.IP=`ifconfigeth0|grep‘inet‘|sed’s/^.*addr:
//g’|sed’s/Bcast.*$//g’`
5.NETMASK=`ifconfigeth0|grep‘inet‘|sed’s/^.*Mask:
//g’`
6.echo“$IP/$NETMASK”
7.exit
复制代码
17.在命令行下发一邮件,发件人:
123@abc,收信人:
abc@xyz
二简述题:
1.linux下如何改IP,主机名,DNS
2.linux下如何添加路由
3.简述linux下编译内核的意义与步骤
4.简述Linux启动过程
5.简述DDOS攻击的原理
6.简述Tcp三次握手的过程
7.简述VPN,常见有哪几种?
8.
三:
设计题:
1.系统设计
请考虑以下系统的设计.您可以翻阅资料,查询任何您有帮助的资料、指南等。
您有的资源:
8台安装Linux(2.6内核)的双网卡PC服务器以及相关开源软件,交换机
Apache2.2.x
Tomcat5.5.X
数据库系统
最多8个InternetIP地址,请您设计一个系统:
1、使用双apachewebserver前端;
2、采用AJP连接后段的3台Tomcat应用服务器,这些tomcat被配置成cluster,因此需要考虑apache对后端的分配, 分配采用完全平衡的方法
; 配置使用cookie来实现sessionstickness;
3、1台数据库服务器只有tomcat才需要连接,也不需要对Internet提供服务。
4、考虑系统的安全性和维护方便性;
5、通过rewrite规则配置把下属URL规则改写成友好的URL
http:
//server/webapp/getinfo?
id=XXXX&name=YYYY–>http:
//server/getinfo/YYYY/XXXX
您需要提交
1、服务器规划,包括:
* 网络结构图
* 每台机器的IP地址分配
* 每台机器上运行的关键软件
* 您从安全性和维护性方面的考虑
2、Apache的以下配置文件给我们:
* extra/http-proxy-ajp.conf
* extra/http-rewrite.conf
2.你可以采取任何设备和不同操作系统服务器设计对两台WWW服务器和两台FTP服务器做负载均衡,用网络拓扑图表示并加以说明!
(方法越多越好)
这个面试已经过了快一个月了,前段时间没有发上来,今天稍微整理了以下发上来了。
本来是想写感想那,但是从小学开始语文都不好。
也不知道从那里写起。
呵呵!
这家公司挺大的,听别人说和sina一个级别的。
具体的就在这里不说出来了。
我从哪里面试出来之后我就想这是面试的SA,好像不是项目经理吧,外企就是不一样啊!
还有就是他在问了问题之后,我答完之后就接着下一个,中间没有任何什么其他的话,脸上也没有表情。
面试完之后完回到家里靠自己的记忆记下了面试中的16道面试题。
发给朋友看看,他们有的说变态,有的说这好像不是SA面试题吧。
汗……还是自己的能力不行啊。
第三套
1、在同一个网站中,当客户访问的时候,会出现有的页面访问的速度快而有的慢,系统和服务完全正常、网络带宽正常。
这是那里出现问题了那?
2、你以前做过的项目中,单台服务器的最大并发量是多少?
说下你硬件的配置?
3、你以前在工作中遇到的,一个困难的技术问题是什么,最后怎么解决的?
4、你说下你技术的强项和不足?
5、在一个系统架构中,我们为了避免单点故障,会怎么做?
6、apache2.x版本中两个不同的运行模式是什么,有什么不同?
7、如果给你很多台服务器,你该怎么去管理?
8、如果给你一个100人的团队你怎么带好他们?
8、如何优化linux系统,说出命令和相应的回值?
9、怎么查看一个服务器运行正常?
10、为什么有些公司会把自己的系统项目外包出去,而自己不招自己系统工程师,说说自己的看法?
11、如果一个web服务器出现问题,你会怎么做?
12、如何添加一个apache的rewirte模块,rewirte模块的原理是什么?
13、你以前所在的公司接到项目的时候,人员是如何人分配的?
14、你们给客户所做的项目,怎么保证客户系统的安全?
15、你们为客户提供什么样的后期服务?
16、相对web服务来说,你们怎么知道当时客户的系统已经不能满足需求,当不能满足需求的时候,你们就用什么解决?
以上就是我能记得的面试题了,还有几个记不起来了。
真是一个比一个各色。
面对这么各色的面试题,你能答出来多少?
看完这个之后希望大家能把自己能打答出来的写下来!
第四套
1,编写shell脚本获取本机的网络地址。
比如:
本机的ip地址是:
192.168.100.2/255.255.255.0,那么它的网络地址是192.168.100.1/255.255.255.0
2,当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?
注:
本机跟本地dns还没有缓存。
3,我们都知道,dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?
什么时候采用udp协议?
为什么要这么设计?
4,一个EXT3的文件分区,当使用touchtest.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df-h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况,说说你的理由。
5,我们都知道FTP协议有两种工作模式,说说它们的大概的一个工作流程?
1,#!
/bin/sh
LAN=eth0
LOCALNET_MASK=`ifconfig$LAN|sed-e's/^.*Mask:
([^
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 系统 工程师 试题 37 word