linux面试题.docx

上传人:b****8 文档编号:9359254 上传时间:2023-02-04 格式:DOCX 页数:57 大小:51.15KB
下载 相关 举报
linux面试题.docx_第1页
第1页 / 共57页
linux面试题.docx_第2页
第2页 / 共57页
linux面试题.docx_第3页
第3页 / 共57页
linux面试题.docx_第4页
第4页 / 共57页
linux面试题.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

linux面试题.docx

《linux面试题.docx》由会员分享,可在线阅读,更多相关《linux面试题.docx(57页珍藏版)》请在冰豆网上搜索。

linux面试题.docx

linux面试题

linux运维工程师面试题总结(2012-01-1717:

35)

标签:

 Linux运维工程师 面试题 分类:

Linux

一、有文件file1.

1、查询file1里面空行的所在行号

awk‘{if($0~/^$/)printNR}’file

or

grep-n^$file|awk‘BEGIN{FS=”:

”}{print$1}’

2、查询file1以abc结尾的行

grepabc$file1

3、打印出file1文件第1到第3行

sed-n’1,3p’file1

head-3file1

二、如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1

Iptables-APREROUTING-d124.42.60.109-ptcp-mtcp–dport80-jDNAT

–to-destination10.0.0.18:

9000

三、crontab

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

实现

06-12/2*11*/usr/bin/httpd.sh

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

#!

/bin/bash

forfilein`ls/root`

do

if[-f$file];then

if[`ls-l$file|awk'{print$5}'`-gt10000];then

mv$file/tmp/

fi

fi

done

五、简述raid0raid1raid5三种工作模式的工作原理及特点。

RAID0:

连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据

传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。

RAID0只是单纯地提高

性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。

因此,

RAID0不能应用于数据安全性要求高的场合。

RAID1:

它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。

当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID1可以提高读取性能。

RAID

1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。

当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

简单来说就是:

镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。

RAID10:

高可靠性与高效磁盘结构

一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。

主要用于容量不大,但要求速度和差错控制的数据库中。

RAID5:

分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。

支持一块盘掉线后仍然正常运行。

六、oracle数据库备份方式

物理备份:

开启网络监听,备份数据库文件。

RMAN备份:

通过表空间文件在RMAN模式对ORACLE数据备份。

七、如何查看占用端口8080的进程

lsof-i:

8080

八、请写出apache2.X版本的两种工作模式,以及各自工作原理。

如何查看apache当前

所支持的模块,并且查看是工作在哪种模式下?

答案:

prefork(多进程,每个进程产生子进程)和worker(多进程,每个进程生成多个线程)

prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足

MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,

继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足

MinSpareServers设置的值为止。

这就是预派生(prefork)的由来。

这种模式可以不必

在请求到来时再产生新的进程,从而减小了系统开销以增加性能。

worker是2.0版中全新的支持多线程和多进程混合模型的MPM。

由于使用线程来处

理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。

但是,

worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。

种MPM的工作方式将是Apache2.0的发展趋势。

可以通过命令httpd-l可以查看apache当前的模块,如果带有worker.c就是工作在

worker模式下,如果有prefork.c就是工作在prefork.c的模式下。

九、你使用过监控软件吗?

说说其特点

使用nagios对服务器进行监控,其特点可实时实现手机短信、电子邮件、MSN、飞信报警。

使用cacti对流量进行监控。

十、你对现在运维工程师的理解和以及对其工作的认识

运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最

安全的服务。

运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失,因此

运维工程师的工作需要严谨及富有创新精神。

十一、linux下常用的DNS服务软件是什么,举出几种常用的DNS记录,如果域名

配置好了一台邮件服务器,IP地址为202.106.0.20,我该如何做相关的解析?

是否了解

bind的智能解析,如果了解请简述一下其原理

答案:

1)常用的DNS软件是bind

2)A记录地址记录

MX记录邮件交换记录

CNAME记录别名域记录

3)修改域名的配置文件,增加以下记录

INMX10.

mailINA202.106.0.20

4)bind根据请求解析客户端的IP地址,做出不同的解析,其原理是在配置文件中,设定了

view,在每个view都有客户端的IP地址段,bind服务器根据请求解析客户端的IP地址,

匹配不同的view,再根据该view的配置,到相应的配置文件进行查询,将结果返回给请求

的客户端。

十二、通过apache访问日志access.log统计IP和每个地址访问的次数,按访问量列出

前10名。

日志格式样例如下

192.168.1.247–-[02/Jul/2010:

23:

44:

59+0800]“GET/HTTP/1.1″20019

答案:

cataccess_log|awk‘{print$1}’|uniq-c|sort-rn|head-10

//这个别的方法也能统计,但有些命令是必要的awk,sort,uniq,主要看是否这些命令都

使用了。

十三、如何用mysql命令进行备份和恢复?

以test库为例,创建一个备份,并再用此备份

进行恢复。

mysqldump-uroot-ptest>test.sql

mysql-uroot-ptest

//主要考对方msqldump>test.sql和mysql

十四、你认为在系统调优方面都包括哪些工作,以linux为例,请简明阐述,并举一些参数

为例。

答案:

系统调优包括内核参数优化和应用优化2个方面,对方只要从这两方面来说,就可以了,

尽量能有些经验的阐述。

有个文件如下:

要求:

得到主机名(和域名),并统计哪个网址出现的次数,并排序。

可以shell或C。

得到的结果应该是:

3

2

1

[root@mail~]#awk‘BEGIN{FS=”/”}{arr[$3]++}END{for(iinarr)print

arr[i],i}’list|sort-r答案

3

2

1

挂载windows的共享目录?

mount.cifs//IP/SHARElinux的目录--verbose-ouser=username<--这个用户是

windows下的用户--verbose这个参数可以不加,它是显示过程的

例如mount.cifs//10.1.1.246/gongxiang/mnt--verbose-ouser=gao

或者是mount-tcifs

umount/mnt或umount.cifs/mnt-l<--取消挂载

图形界面:

smb:

//IP

AB网络是通的,最少列出五种传输文件的服务

nfs,ftp,scp,rsync,samba,http:

//

1.假设Apache产生的日志文件名为access_log,在apache正在运行时,执行命令mv

access_logaccess_log.bak,执行完后,请问新的apache的日志会打印到哪里,为什么?

新的日志会打印在access_log.bak中,因为apache启动时会找到access_log文件,

随时准备向文件中加入日志信息,

虽然此时文件被改名,但是由于服务正在运行,因为它的inode节点的位置没有变,程序

打开的fd仍然会指向原来那个inode,

不会因为文件名的改变而改变。

apache会继续向已改名的文件中追加日志,但是若重启

apache服务,系统会检查access_log

文件是否存在,若不存在则创建。

2.在Shell环境下,如何查看远程Linux系统运行了多少时间?

2、监控主机执行:

sshuser@被监控主机ip"uptime"

这样得到了被监控主机的uptime

3.处理以下文件内容,将域名取出并进行计数排序,如处理:

得到如下结果:

域名的出现的次数域名

3

2

1

可以使用bash/perl/php/c任意一种

3、[root@localhostshell]#catfile|sed-e's/http:

\/\///'-e's/\/.*//'|sort|

uniq-c|sort-rn

3

2

1

[root@codfei4shell]#awk-F/'{print$3}'file|sort-r|uniq-c|awk'{print

$1"\t",$2}'

3

2

1

4.如果得到随机的字串,长度和字串中出现的字符表可定义,并将字串倒序显示,如

把0123456789作为基准的字串字符表,产生一个6位的字串642031,打印出的字串为

130246,可使用bash/perl/php/c任意一种.

4、[root@localhost~]#awk-vcount=6'BEGIN

{srand();str="0123456789";len=length(str);for(i=count;i>0;i--)

marry[i]=substr(str,int(rand()*len),1);for(i=count;i>0;i--)

printf("%c",marry[i]);printf("\n");for

(i=0;i<=count;i++)printf("%c",marry[i]);printf("\n")}'

838705

507838

5.如何查看当前Linux系统的状态,如CPU使用,内存使用,负载情况等.

5、Linux系统中“/proc”是个伪文件目录,不占用系统空间,及时的反应出内存现在使用的

进程情况......其中许多文件都保存系统运行状态和相关信息

对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:

cpuinfo主机CPU信息

filesystems文件系统信息

meninfo主机内存信息

versionLinux内存版本信息

diskstatus磁盘负载情况

另外top命令可以动态的显示当前系统进程用户的使用情况,而且是动态的显示出来,尤其

是在该命令显示出来的对上方对系统的情况进行汇总.

free命令呢可以查看真实使用的内存一般用free-m

使用lsof、ps-aux可以查看详细的每个进程的使用状况

dmesg也是常用来查看系统性能的命令

#题目:

有10台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/

分区适用率大于80%,就发邮件报警放到crontab里面,每10分钟检查一次

#测试机器:

虚拟机Linuxas4

#1.首先建立服务器间的信任关系。

拿两台机器做测试

本机ip:

192.168.1.6

[root@codfei~]#ssh-keygen-trsa

Generatingpublic/privatersakeypair.

Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):

/root/.ssh/id_rsaalreadyexists.

Overwrite(y/n)?

y(以为我是第2次建立关系所以此处覆盖原来的文件)

Enterpassphrase(emptyfornopassphrase):

(直接回车无须输入密钥)

Entersamepassphraseagain:

Youridentificationhasbeensavedin/root/.ssh/id_rsa.

Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.

Thekeyfingerprintis:

04:

37:

13:

2a:

4b:

10:

af:

c1:

2b:

03:

3f:

6b:

27:

ce:

b9:

62root@codfei

[root@codfei~]#cd.ssh/

[root@codfei.ssh]#ll

-rw-------1rootroot883Apr2517:

51id_rsa

-rw-r--r--1rootroot221Apr2517:

51id_rsa.pub

-rw-r--r--1rootroot442Apr2517:

37known_hosts

id_rsa是密钥文件,id_rsa.pub是公钥文件。

[root@codfei.ssh]#scpid_rsa.pub192.168.1.4:

/root/.ssh/192.168.1.6

root@192.168.1.4'spassword:

id_rsa.pub100%2210.2KB/s00:

00

这里把公钥文件取名为本机的ip地址就是为了以后和更多的机器建立信任关系不发生混

淆。

现在登陆到192.168.1.4机器

[root@codfei~]#cd.ssh/

[root@codfei.ssh]#cat192.168.1.6>>authorized_keys

然后回到192.168.1.6机器直接

[root@codfei.ssh]#ssh192.168.1.4

Lastlogin:

WedAug812:

14:

422007from192.168.1.6

这样就可以了,里面偶尔涉及到权限问题。

一般./ssh文件夹是755authorized_keys为

600或者644

####脚本如下#######################

#!

/bin/bash

#SCRIPT:

df_check.sh

#WriteenbycodfeiMonSep307:

25:

28CST2007

#PURPOSE:

Thisscriptisusedtomonitorforfullfilesystems.

#######################Begining####################

####################

FSMAX="80"

remote_user='root'#####完全可以不用root

remote_ip=(192.168.1.5192.168.1.6192.168.1.7192.168.1.8192.168.1.9

192.168.1.10192.168.1.11192.168.1.12192.168.1.13192.168.1.14)---->

这里填写你要监控的主机ip

ip_num='0'

while["$ip_num"-le"$(expr${#remote_ip[@]}-1)"]

do

read_num='1'

ssh"$remote_user"@"${remote_ip[$ip_num]}"df-h>/tmp/diskcheck_tmp

grep'^/dev/*'/tmp/diskcheck_tmp|awk'{print$5}'|sed's/\%//g'>

/tmp/diskcheck_num_tmp

while["$read_num"-le$(wc-l

do

size=$(sed-n"$read_num"'p'/tmp/diskcheck_num_tmp)

if["$size"-gt"$FSMAX"]

then

$(grep'^/dev/*'/tmp/diskcheck_tmp|sed-n$read_num'p'>

/tmp/disk_check_mail)

$(echo${remote_ip[$ip_num]}>>/tmp/disk_check_mail)

$(mail-s"diskcheck_alert"admin

fi

read_num=$(expr$read_num+1)

done

ip_num=$(expr$ip_num+1)

done

#############over################################

################让脚本每十分钟执行一次#############

在cron表中加入

0/10****/home/codfei/diskcheck.sh2>&1

################################################

##########################

比如,ext2文件系统,如果异常死机,开机如何修复文件系统?

如果异常关机,比如断电,通知机房的人开机之后,

我们需要远程修复、检查文件系统

除了/分区之外,其他的分区:

umount/home

fsck-y/home

/分区需要开机之后,由机房的人来扫描

随后我们再登录并扫描/home等其他分区

如何查看一个进程所使用的文件句柄?

看这里面/proc/进程号/fd/

的个数就行了

简单的比如如何查看apache进程数

[root@localhostfd]#ps-ef|grephttpd|wc-l

1

如何统计apache的每秒访问数?

tailaccess_log|awk'{print$1,$4}'

[root@localhostlogs]#grep-c`date-d'3secondago'+%T`access_log

0

################################################

1、/proc/sys子目录的作用

该子目录的作用是报告各种不同的内核参数,并让您能交互地更改其中的某些。

与/proc

中所有其他文件不同,该目录中的某些文件可以写入,不过这仅针对root。

其中的目录以及文件的详细列表将占据过多的篇幅,而且该目录的内容是依赖于系统的,而

大部分的文件也仅仅对某些特殊的应用程序有用。

然而,以下是该子目录的两个最常见的用

途:

允许路由:

即便是Mandrakelinux默认的内核也是允许路由的,您必需显式允许它这么

做。

为此,您只要以root身份键入以下命令:

$echo1>/proc/sys/net/ipv4/ip_forward

如果您要禁用路由,请将上述命令中的1改为0。

阻止IP欺骗:

IP欺骗会让人认为某个来自于外部的某个数据包是来自于它到达的那个接

口。

这一技术常被骇客(cracker)所使用。

您可以让内核阻止这种入侵。

请键入:

$echo1>/proc/sys/net/ipv4/conf/all/rp_filter

这样,这种攻击就不再可能了。

这些改变仅当系统运行时有效。

在系统重新启动之后,它们会改会它们的默认值。

要在启动

时就改动这些值,您可以将您在shell提示符后键入的命令添加到/etc/rc.d/rc.local中

以免每次都键入它们。

另一个方法是修改

/etc/sysctl.conf

2、将一个文本的奇数行和偶数行合并,第2行和第3行合并

[root@localhostbin]#cat1

48Oct3bc1997lpas68.00lvx2a138

484Jan380sdf1usp78.00deiv344

483nov7pl1998usp37.00kvm9d644

320augder9393psh83.00wiel293

231julsdf9dsfsdfs99.00werl223

230nov19dfd9dabd87.00sdiv230

219sept5ap1996usp65.00lvx2c189

216Sept3zl1998

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1