> IT面试 >

Linux运维工程师笔试题

1、用什么命令查询指定IP地址的服务器端口?

 

1 yuminstall-y nmap

 

2、用什么命令定义某个程序执行的优先级别? 1 nice renice

 

3、如何让history命令显示具体时间?

1 HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"

2 export HISTTIMEFORMAT

3 重新开机后会还原,可以写/etc/profile

 

1

4、查看Linux系统当前指定用户的邮件队列命令是?

1 [root@test4 ~]# mailq

2 [root@test4 ~]# mail -u root

3 Heirloom Mail version 12.47/29/08.Type ? forhelp.

4 "/var/mail/root": 9messages 8unread

5 1AnacronTue Jun 1806:4018/625"Anacron job 'cron.daily' 6 ontest4.wolf.org"

7 >U2 AnacronWed Jun 1914:2918/624"Anacron job 'cron.daily' on 8 test4.wolf.org"

9 U3AnacronThu Jun 2013:3618/624"Anacron job 'cron.daily' 10 ontest4.wolf.org"

11 & 1

12 Message1:

13 From root@test4.wolf.orgTue Jun 1806:40:092013

14 Return-Path: <root@test4.wolf.org>

15 X-Original-To: root

16 Delivered-To: root@test4.wolf.org

17 From: Anacron <root@test4.wolf.org>

18 To: root@test4.wolf.org
 

19 Content-Type: text/plain;charset="ANSI_X3.4-1968"

20 Subject: Anacron job 'cron.daily'ontest4.wolf.org

21 Date: Tue, 18Jun 201306:40:09-0700(PDT)

Status: RO

/etc/cron.daily/mlocate.cron:

/usr/bin/updatedb: can not open`/etc/updatedb.conf': Permission denied

 

5、查看Linux系统当前加载的库文件? 1 lsof

 

6.Ext4文件系统如何恢复rm命令删除文件

1 Linux下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的inode2 节点中的扇区指针清除,同时释放这些数据对应的数据块,当释放的数据块被3 系统重新分配时,那些被删除的数据就会被覆盖,所以误删除数据后,应马上4 卸载文件所在的分区。

5 每个文件有inode和block组成,inode是文件系统组成的最基本单元,它保6 存着文件的基本属性(大小、权限、属主组等)和存放的位置信息。而 block用7 来存储数据。类似key-value,inode就是key,block对应value,通过key8 查找key对应的value。类似 python的字典。

9 必须先umount要恢复文件的分区或者把分区改为只读模式,命令:mount –o 1remount,ro 分区(例如:dev/hda1)

0 或者

1mount -n -r -o remount /dba1 最好尽快将所在分区修改为只读方式,防1 止数据被覆盖使用。

1linux下面查看文件系统的方法有:

2 1、mount命令

1#mount

3 /dev/sda1 on / type ext4

1表示sda1 的文件系统是ext4 类型的。

4 2、命令df

1# df -Th

5 Filesystem Type Size Used Avail Use% Mounted on

1/dev/sda1 ext4 13G 7.6G 4.2G 65% /

6 df 的-T参数就可以显示文件系统的类型,-h参数让其显示的更人性化。



13、命令 more /etc/fstab

7 # more /etc/fstab 通过配置文件查看

1软件下载:

8 wget

1http://sourceforge.net/projects/extundelete/files/extundelete/0.2.09 /extundelete-0.2.0.tar.bz2/download

2安装软件:

0 yum install e2fsprogs-devel libcom_err-devel -y

2tar -jxfextundelete-0.2.0.tar.gbz2 1 1.cdextundelete-0.2.0

22../configure

2 3.make

24.makeinstall

3 执行恢复动作:

2单个文件的恢复:extundelete /dev/sdaX --restore-file /*/*....*/file 4 目录恢复:extundelete /dev/sdaX --restore-directory /*/*....*/dir 2恢复近期被删的所有东西:extundelete /dev/sdaX --restore-all

5

2

6

2

7

2

8

2

9

30

 

7、使用tcpdump监听主机IP为192.168.1.1,tcp端口为80的数据,同时将结果保存输出到tcpdump.log,请写出相应命令。

1 [root@test4 ~]# tcpdump tcp port 80andhost 192.168.46.128–w/root/sss

 

8、简述IDS作用和实现原理。
 

入侵检测,设备放在intelnet进来的第一台路由后面。对进入路由的所有的包1 进行检测,如果有异常就报警。

 

9、用sed修改test.txt的23行test为tset; 1 sed ‘23s/test/tset/g ’ test.txt

 

10、一个EXT3的文件分区,当使用touchtest.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大约只使用了60%的磁盘空间,为什么会出现这个情况,说说你的理由。

1,用户磁盘配额的问题 1 2,ext3文件系统设计的时候不适合很多小文件和大文件一样的文件格式,很2 多小文件会导致inode耗尽

 

11、当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?(注:本机跟本地dns还没有缓存)

a.用户输入网址到浏览器

b.浏览器发出DNS请求信息 1 c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,2 继续下一步 3 d.计算机通过/etc/resolv.conf按照本地DNS的顺序,向合法dns服务器查询4 IP结果, 5 e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,6 才再次查询此结果 7 f.返回IP结果给浏览器

g.浏览器根据IP信息,获取页面

 

12.DNS服务器有哪三种类型

 

1 主 从 缓存


二、简述题(共10题,每题7分)

1、linux下如何改IP,主机名,DNS

1 [root@test4 ~]#vim/etc/sysconfig/network-scripts/ifcfg-eth0

2 [root@test4 ~]#vim/etc/sysconfig/network

3 [root@test4 ~]# vim/etc/resolv.conf

 

2、用shell统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前10位的IP数。以下是nginx的访问日志节选

202.101.129.218- - [26/Mar/2006:23:59:55 +0800] "GET

/online/stat_inst.php?pid=d065HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1)"

请写shell实现输出top10的IP列表。

[root@test4logs]# awk '{print $1}'access.log |sort|uniq -c |head 1 -n 10 2 31192.168.46.1

 

3、简述linux下编译内核的意义与步骤

1 编译内核的意义在于让硬件设备更稳定的发挥其应有的效能;

2 新内核可以在http://www.kernel.org下载。

3 先把linux-2.6.18.2.tar.bz2 复制到/usr/src/的下面

4 tar –jxvf linux-2.6.18.2.tar.bz2

5 cd linux-2.6.18.2

6 make mrproper把原来编译产生的垃圾删除

7 配置内核可以根据需要与爱好使用下面命令中的一个:

8 #make config (基于文本的最为传统的配置界面)

9 #make menuconfig (基于文本选单的配置界面)

10 #make xconfig (基于图形窗口模式的配置界面)

11 #make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会12 省去不少麻烦)

13 进行配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同14 的需要选择。例如,如果需要内核支持DOS分区的文件系统,则要在文件系
 

15 统部分选择FAT或DOS系统支持;系统如果配有网卡、PCMCIA卡等,需要在16 网络配置中选择相应卡的类型。

17 选择相应的配置时,有三种选择,它们分别代表的含义如下:

18 “Y”-将该功能编译进内核

19 “N”-不将该功能编译进内核

20 “M”-将该功能编译成可以在需要时动态插入到内核中的模块。

21 将与核心其它部分关系较远且不经常使用的部分功能代码编译成为可加载模22 块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境23 改变时对内核的影响。许多功能都可以这样处理,例如像上面提到的网卡的24 支持、对FAT等文件系统的支持。

25 其实现在编译内核最关键的地方就是配置内核。我一般用make menuconfig26 配置内核。

27 配置2.6.0内核时如果你的主板是Intel芯片的话,你用默认配制也许就可28 以得到一个满意的内核哦。做法是make menuconfig后离开时选择保存。 29 这里的难点是pci,如果你硬盘是IDE的那一定要选择好你主板上南桥芯片。30 SCSI的话就是要选择上你的SCSI卡型号。

31 还有就是网卡,声卡芯片的型号了,他们的型号你都可以用lspci 查找到比32 如我的是。

33 [root@leo boot]# lspci

34 00:00.0Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host 35 bridge (rev 01)

36 00:01.0PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge 37 (rev 01)

38 00:07.0ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 08) 39 00:07.1IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) 40 00:07.2USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB

41 00:07.3Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 08)

42 00:0f.0VGA compatible controller: VMware Inc [VMware SVGA II] PCI 43 Display Adapter

44 00:10.0SCSI storage controller: LSI Logic / Symbios Logic 53c1030 45 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)

46 00:11.0Ethernet controller: Advanced Micro Devices [AMD] 79c970 47 [PCnet32 LANCE] (rev 10)

48 00:12.0Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] 49 (rev 02)

50 编译配置

51 在这一部分涉及几个重要模块的配置请,特别注意.一般用"make
 

52 menuconfig"命令来配置内核.

53 输入以上命令后出现一个菜单界面,用户可以对需要的模块.下面着重讲几个54 重要的配置

55 1)文件系统

56 请务必要选中ext3文件系统,

57 File systems--->

58 [*] Ext3 journalling file system support

59 [*] Ext3 Security Labels

60 [*] JBD (ext3) debugging support

61 以上三项一定要选上,而且要内建(即 标*). 这个非常重要,在配置完后62 一定要检查一下.config文件有没有"CONFIG_EXT3_FS=y"这一项. 如果不 63 是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运行内核时就会遇上64 以下错 误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed 65 2)网卡驱动

66 请务必把自己网卡对应的驱动编译进内核,比较普遍的网卡是

67 realtek 8139,以下就是这种网卡的配置,以供参考

68 Device Drivers--->

69 Networking support--->

70 Ethernet (10or 100Mbit) --->

71 <*> RealTek RTL-8139C+ PCI Fast Ethernet Adapter support

72 (EXPERIMENTAL)

73 <*> RealTek RTL-8139PCI Fast Ethernet Adapter support

74 3)声卡驱动

75 也要选择自己声卡对应的驱动编译进内核,比较普遍的声卡是

76 i810_audio,以下就是这种声卡的配置,以供参考

77 Device Drivers --->

78 Sound --->

79 <*> Sound card support

80 Advanced Linux Sound Architecture --->

81 <*> Advanced Linux Sound Architecture

82 <*> Sequencer support

83 < > Sequencer dummy client

84 <*> OSS Mixer API

85 <*> OSS PCM (digital audio) API[*] OSS Sequencer API

86 <*> RTC Timer support

87 PCI devices --->

88 <*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111
 

89 Open Sound System --->

90 < > Open Sound System (DEPRECATED)

91 以上三项配置关系到新内核能否正常运行,请备加注意.其他的配置如果不是92 很了解,大可以按默认的选择.

93 #make dep (确保关键文件在正确的位置) 2.5.*-2.6.0都不需要了。其实94 2.4.*某些内核也不需要了。

95 #make clean (确保所有有关文件都处于最新版本状态)

96 #make zImage (编译压缩形式的内核)

97 在需要内核支持较多的外设和功能时,内核可能变得很大,此时可以编译大98 内核:

99 #make bzImage

100 编译的时间与机器的硬件条件及内核的配置等因素有关,所获得的内核的位101 置在/usr/src/linux/arch/i386/boot目录下,当然这里假设用户的CPU是102 x86型的。

103 如果选择了可加载模块,编译完内核后,要对选择的模块进行编译: 104 #make modules (编译选择的模块)

105 #make module_install (将编译后的模块转移到系统标准位置)

106 # make install

107 上面的命令"make install"将:

108 (1)把压缩内核映象拷贝到/boot目录下, 并创建相应的System.map符号链109 接;

(2)修改bootloader的配置文件;

(3)调用mkinitrd程序创建内核的initrd映象. 对于GRUB而言, 将在/boot/grub/grub.conf配置文件增加如下类似的配置行:

title Red Hat Linux (2.***)

root(hd0, 1)

kernel /boot/vmlinuz-2.*** ro root=LABEL=/

initrd /boot/initrd-2.***.img

模块在系统中的标准目录位于/lib/modules/x.y.z,后面的x.y.z是版本号,为安全起见,在运行#make modules_install之前最好对/lib/modules进行备份。模块通常是带有扩展名.o的文件,使用命令#lsmod可以对当前内核的模块进行列表。

我一般是make bzImage;make modules;make module_install; make install 运行新内核之前,请检查一下/boot/grub/grub.conf的内容,下面的配置可作参考

# grub.conf generated by anaconda

#
 

# Note that you donot have to rerun grub after making changes to thisfile

# NOTICE: You have a /boot partition. This means that

# all kernel and initrd paths are relative to /boot/, eg.

# root (hd0,0)

# kernel /vmlinuz-version ro

root=/dev/VolGroup00/LogVol00

# initrd /initrd-version.img

#boot=/dev/hda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Fedora Core (2.6.18.2)

root (hd0,0)

kernel /vmlinuz-2.6.18.2ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18.2.img

title Fedora Core (2.6.18-1.2798.fc6)

root (hd0,0)

kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

initrd /initrd-2.6.18-1.2798.fc6.img 现在重启机器,即可测试最新的内核。

 

4、简述Linux启动过程

1 计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条2 或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆3 弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错4 误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。 5 1) 最初始阶段:

6 当我们打开计算机电源,计算机会自动从主板的BIOS(Basic

7 Input/OutputSystem)读取其中所存储的程序。这一程序通常知道一些直接连8 接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS9 允许你从软盘、光盘或者硬盘中选择一个来启动计算机。
 

10 下一步,计算机将从你所选择的存储设备中读取起始的512bytes(比如光盘一11 开是的512bytes,如果我们从光盘启动的话)。这512bytes叫做主引导记录12 MBR (masterboot record)。MBR会告诉电脑从该设备的某一个分区

13 (partition)来装载引导加载程序(boot loader)。Boot loader储存有操作系14 统(OS)的相关信息,比如操作系统名称,操作系统内核(kernel)所在位置等。15 常用的boot loader有GRUB和LILO。 (责任编辑:IT)