运维常见面试题

简述tcp三次握手?

1
2
3
4
5
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.
完成三次握手,客户端与服务器开始传送数据

Linux开机启动流程详细步骤是什么?忘记密码如何破解?

1
2
3
4
5
6
7
第一步:开机自检,加载BIOS,检查外围硬件设备是否能够正常使用,然后根据BIOS设置找到第一个可启动的磁盘设备(看是否有引导程序BOOTLOADER)。
第二步:系统引导,选择启动设备并加载第一个启动磁盘的第一个扇区也就是磁盘分区表MBR。
第三步:内核启动,加载bootloader。系统内核运行之前运行物理内存中Boot Loader,可以实现选择启动哪个系统,哪个内核版本,加载选定的内核到内存中,解压、展开并将系统控制器交给内核。
第四步:初始化文件系统,内核加载到内存中取得系统的控制权后立即初始化系统中的设备(如CPU,I/O存储器等),内核被加载后运行用户空间的第一个程序便是/sbin/init,该文件会读取/etc/inittab文件,选择启动的级别,然后读取并依据此文件来进行初始化工作。读取的第二个文件/etc/rc.d/rc*.d(根据启动级别不同)/,再接着就是执行用户自定义启动脚本/etc/rc.d/rc.local
第五步:登陆系统进入
centos6:在出现的引导菜单上按上下键选择忘记密码的那个系统,键入e进入编辑模式,选择最新的内核键入e,在编辑界面rhgb quiet后面加入空格,输入single或者“1”,然后回车确定,然后键入b进入单用户模式,然后可以修改root密码,改后重启即可。
centos7:开机引导菜单键入e,编辑修改两处:ro改为rw,在LANG=en_US.UFT-8后面添加init=/bin/sh,然后按ctrol+x重新启动并修改密码,若selinux开启,还需要执行 touch /.autorelabel,然后执行exec /sbin/init启动系统即可。

企业中Linux数据库服务器做raid几,你们原来公司的数据库服务器大小?RAID 0 1 5 10区别,系统分区标准是什么?

1
2
3
4
5
6
raid0可以是2个或以上盘组合,是将数据并行存储在多个磁盘,因而读写快,但是没有冗余,一旦一个数据盘坏掉,所有的数据都会丢失,不适合对数据安全性要求高的服务器。
Raid1只能是2块盘或2的倍数,盘的大小可以不一样,但以小的为准。这个是对数据做了镜像,对一个盘存储一份数据,另外一个盘来复制进行备份,因而比较浪费资源,成本比较高,磁盘控制器负载比较大,系统读写性能也下降。
Raid3至少需要3块盘。数据存储在n+1块盘上,有效空间是n块盘的总和,最后一块盘用来存储校验信息。任一个盘坏掉,都可以通过剩下的盘和校验盘来恢复数据,数据盘要重新恢复完整的校验容错信息,对阵列写入时会重写校验盘的内容,因而校验盘的负载很大,读写速度低于raid0。适用于读取多而写入少的应用环境,比如数据库和web服务器。使用容错算法和分块的大小决定了raid3通常用于大文件且安全性要求较高的应用,比如视频编辑,大型数据库,硬盘播出机等。
Raid5是三块盘以上,只允许损失一块盘,通过剩下的数据和相应的奇偶校验信息可以去恢复被损坏的数据,安全性接近raid1。故障之后必须尽快更换。
Raid1+0 至少需要四块盘,磁盘数量是2的整数倍,有raid1和raid0的优点,但成本比较大。
系统分区标准:没有标准分区,最普遍的就是分法就是将boot、/(根分区)和swap单独分出来

Apache两种工作方式的区别,如何创建多个虚拟主机呢?

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
两种模式:prefork模式和worker模式
prefork模式:
prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。
    这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。
Worker模式:
worker使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合高流量的http服务器。缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起”死掉”,所以要保证一个程式在运行时必须被系统识别为”每个线程都是安全的”。
    此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。
apache创建虚拟主机,先再httpd.conf中打开引入虚拟主机配置文件httpd-vhosts.conf,然后修改此配置文件
方案一:将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点。
<VirtualHost www.lyz.com:8080> #配置访问跟目录 <VirtualHost www.lyz.com:8090>
DocumentRoot "d:/Apache/myweb1" #这里配置欢迎首页面 d:/Apache/myweb2
DirectoryIndex index.html index.htm index.php
<Directory />
Options FollowSymLinks #不允许别人修改我们的页面
AllowOverride None #设置访问权限
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
方案二:将同一个端口映射成不同的域名,不同的域名映射到不同的站点。
#配置我们自己的虚拟主机
<VirtualHost *:8080> #这里相同,使用同一个端口
#配置访问跟目录
DocumentRoot "d:/Apache/myweb1" #这里使用不同的站点目录,显示不同的项目
ServerName www.lyz.com #这里配置欢迎首页面,写入对应站点的域名
DirectoryIndex news.html index.html index.htm index.php
<Directory />
Options FollowSymLinks #不允许别人修改我们的页面
AllowOverride None #设置访问权限
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

你维护网站的时候,出现过什么问题呢?故障如何解决呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
404 bad request:这是请求的header过大造成的,修改nginx.conf,写成large_client_header_buffers 4 64k;
413 Request Entity Too Large:一般出现上传文件过大时出现,修改nginx.conf,client_max_body_size 10m;还需要与php.ini中post_max_size=10M,upload_max_filesize=2M保持一致。
499 Client Closed Request:客户端在为等到服务器相应返回前就关闭了客户端描述符。一般出现在客户端设置超时后,主动关闭socket. 解决方法:根据实际Nginx后端服务器的处理时间修改客户端超时时间。
500 Internal Server Rrror:脚本错误,(php语法错误、lua语法错误)访问量过大,系统资源限制,不能打开过多文件
      磁盘空间不足。(access log开启可能导致磁盘满溢 关闭)
解决方法:语法错误查看nginx_err_log php_err_log。
文件访问量:修改nginx配置文件worker_rlimit_nofile 65535;
修改/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
502 Bad Gateway、503 Serveice Unavailable:后端服务无法处理,业务中断。解决方法:从后端日志获取错误原因,解决后端服务器问题。
504 Gateway Timeout:后端服务器在超时时间内,未响应Nginx代理请求。
解决方法:根据后端服务器实际处理情况,调正后端请求超时时间。proxy_read_timeout 90;proxy_send_timeout 90;
一般原因:可能网站页面缓存大,而fastcgi默认进程响应缓存区8k
解决方法:配置nginx.conf相关设置fastcgi_buffers 8 128ksend_timeout 60;

产生死锁的必要条件

1
2
3
4
5
互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。
不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。
请求和保持条件:进程每次申请它所需要的一部分资源,在申请新的资源的同时,继续占用已分配到的资源。
循环等待条件:在发生死锁时必然存在一个进程等待队列{P1,P2,…,Pn},其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路,环路中每一个进程所占有的资源同时被另一个申请,也就是前一个进程占有后一个进程所深情地资源。
以上给出了导致死锁的四个必要条件,只要系统发生死锁则以上四个条件至少有一个成立。事实上循环等待的成立蕴含了前三个条件的成立,似乎没有必要列出然而考虑这些条件对死锁的预防是有利的,因为可以通过破坏四个条件中的任何一个来预防死锁的发生。

OSI七层模型

1
2
3
4
5
6
7
8
9
10
开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型
OSI将计算机网络体系结构(architecture)划分为以下七层:
物理层: 将数据转换为可通过物理介质传送的电子信号,部局域网上传送数据帧(data frame),它负责管理计算机通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等.
数据链路层: 决定访问网络介质的方式。
在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址.
网络层: 使用权数据路由经过大型网络,决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。
传输层: 提供终端到终端的可靠连接.把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。
会话层: 负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。
表示层: 把数据转换为能与接收者的系统格式兼容并适合传输的格式。
应用层: 提供为应用软件而设的接口,以设置与另一应用软件之间的通信。








































设备、概念名称
EIA\TIA RS-232、针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器物理层
交换机、HDLC、PPP数据链路层
IP、ARP、OSPF网络层
TCP、UDP传输层
PRC、SQL、NFS会话层
GIF、ASCII、PICT、HTML表示层
HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3应用层

简述进程的启动、终止的方式以及如何进行进程的查看。

1
2
3
4
5
6
7
8
9
参考答案:
在Linux中启动一个进程有手工启动和调度启动两种方式:
(1)手工启动
用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:
①前台启动:直接在SHELL中输入命令进行启动。
②后台启动:启动一个目前并不紧急的进程,如打印进程。
(2)调度启动
系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。
经常使用的进程调度命令为:at、batch、crontab。

简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。

1
2
3
参考答案:
Linux通过i节点表将文件的逻辑结构和物理结构进行转换。
i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在i节点表中最重要 的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行 连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物 理块连接成文件的逻辑结构。

解释i节点在文件系统中的作用。

1
2
参考答案:
在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。I节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。

简述DNS进行域名解析的过程。

1
2
3
4
5
6
参考答案:
首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
(4)若没有找到,则返回错误信息。

简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?

1
2
3
4
5
参考答案:
(1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码。
区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。
(2)ftp文件传输有两种文件传输模式:ASCII模式和binary模式。ASCII模式用来传输文本文件,其他文件的传输使用binary模式。
(3)常用的ftp文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye

简述网络文件系统NFS,并说明其作用。

1
2
参考答案:
网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS之后省去了登录的过程,方便了用户访问系统资源。

文件系统受到破坏时,如何检查和修复系统?

1
2
3
参考答案:
成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。
使用命令fsck对受到破坏的文件系统进行修复。fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。

什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?

1
2
3
4
参考答案:
链接分硬链接和符号链接。
符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。
坚持原创技术分享,您的支持将鼓励我继续创作!