运维面试题

1、在你们公司的业务构架中有没有使用共享存储?
答 :访问量不大,就说是NFS,

2、你知道几种RAID?简述原理 ?
答 :1,2,5

3、简述一下MySQL主从原理 ,如何处理MySQL主从延迟的问题?
答 :

4、如何在不影响线上业务的情况下为现有的MySQL主从中添加一个新的主从 ?
答 :

5、说一说tcp三次握手四次挥手的过程 ?
答 :

6、简述lvs几种模式的原理 ?你知道几种算法 ?
答 :

7、Apache有一种工作模式?谈谈你对几种模式的认识?
答 :

8、你们公司业务使用的Apache、Nginx、php、mysql各是什么版本 ?
答 :

9、你修改过内核参数 ?修改过哪些?
答 :

10、你知道几种跑JAVA程序的中间价,简述一下区别?
答 :

11、你们公司的业务访问量有多大?
答 :PV25万、30W的UV 、并发数1万
PV10W UV 1W 带宽 20M

12、你们的业务中有没有使用nosql,是哪一种?
答 :

13、MySQL常用的两种数据引擎是什么,简单说一下它们的区别?
答 :

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

15、你是如何保证你们业务的稳定性的?
答 :我们公司才用高可用架构,负载均衡架构,坏一台web服务器不影响业务;分发器坏了,又做了HA高可用,做个全量备份,增量备份,远程备份。

16、谈一下你们公司业务代码更新后上线的流程?
答 :

17、你们公司使用什么监控软件,告警机制是什么?是否有做过告警收敛?
答 :公司服务器不多,我自己写的监控脚本 ;告警机制是发邮件,买了短信服务,做过告警收敛,每10分钟一次。

18、你如何快速部署所有服务器上环境配置更新?
答 :shell脚本分发系统

19、工作中你遇到最棘手的一次事件是什么?你是怎么处理的?

答 :网站访问不了了,查看监控发现是**带宽跑慢了**,最后发现是udp flood攻击。登录交换机查看流量的去向,把占用带宽资源的业务和其他的分开,砍掉一个不重要的业务,换回其他的业务平稳运行。
解决办法 :把域名解析更改一下,指向公网IP或者单独封掉一个被攻击的IP。

20、公司的业务构架?并发处理能力有多大?
答 :

21、你管理过多少台服务器
答:管理过公司的业务,一个公司的站点,业务访问量并不是很大,UV是1万,大概也就5台服务器还有公司办公OA系统。
服务器总数 20台 :
Nginx + keepalived 2 台 ,LAMP构架 8台, MySQL数据库1主2从(3台)、其他系统LAMP、nagias、cacti、管理机共7台。

22、你们公司的数据有多大?MySQL是什么构架?
答 :数据库的数据量,一般都不会太大,这个论坛www.55188.com老牌的论坛,访问量日pv在100w左右,这个量级已经很恐怖了 ,可能小公司的网站或者业务,数据量不会超过10G,根据你们公司的实际情况,模拟吧。。

这个80G的论坛,用到的构架是一主一从,而且都没有读写分离,构架说一个一主二从mycat已经足够了。

23、你在工作中遇到过什么比较棘手的问题?你是如何解决的?

答:1、udp flood大流量攻击,流量180G,可能是竞争对手恶意攻击,解决方法只有一个,接入商业的防护,比如阿里云的高防IP或者创宇的创宇盾
2、由于新来的同事误操作,清空了一个表,导致业务中断了2个 小时,期间我是通过备份和binlog日志恢复的数据,后续,我做了一个延迟主从(延迟30分钟)
3、公司运营同事临时推广,导致业务请求量瞬间增大了10倍,我们之前的服务器仅仅能支撑到5倍的量级,马上扩容来不及,所以,我们的做法是,一个同事去着手扩容,而另外的两个同事分析访问量特别大的资源,然后进行针对性的优化,最后我们是通过把一个频繁请求数据放到memcached缓存例,减轻了数据库的压力,才最终抗过去

24、举例说一下,你对哪些应用程序做过调优?具体如何调优的?优化前后的变化是什么?
1)、mysql的调优案例 :http://www.apelearn.com/bbs/thread-11281-1-1.html
2)、Nginx的调优 :https://conding.net/aminglinux/nginx/git/tree/master/optimize

25、Redis数据类型有几种?哪几种?
答 :有5种,string、hash、集合、有序集合、列表

26、Redis数据持久化有几种?区别是什么?
答: rdb和aof
aof类似于mysql的二进制日志,它把所有的操作都记录在日志里。而rdb就是真正存储的数据,相当于把内存中redis的所有数据快照到了磁盘中。

27、你们公司有用Docker吗?

1)目前公司没有在生产环境中使用docker,而是在一些测试机上使用dokcer,我们老大 从去年就开始让我研究docker的技术,准备今年下半年用在生产环境中。
2)公司在用docker,目前还没有大范围使用,像redis、gitlab、jenkins、jumpserver等业务是跑在docker上的。

28、对于数据库的备份有没有做过有效的检测?
答 :有做过,我们每个月都会把备份数据还原到一个测试库上,用来验证备份的数据是否可用。

29、数据有没有丢失过?有没有做过恢复?
答 :没有丢过,做过故障演练,把备份数据恢复到一个测试库上。

30、服务器宕机了怎么办?
启动机器,看能否登陆,如果能登陆,请检查:

a、是否是应用程序导致内存溢出或者泄露导致
b、是否是进程过多或者不断创建,耗尽资源导致
c、是否是数据库程序死锁,连接数过多导致
d、是否是应用程序异常导致
e、是否是流量负载过大导致
f、 是否是遭受黑客入侵攻击导致
g、是否是误操作导致

如果无法查看故障现场,则可以查询系统日志查看是否有异常记录。

31、Linux经常死机、卡住
linux操作系统服务器在出现死机或卡顿情况,可以参考以下项目进行整体排查:

a、检查服务器进程与服务否占用了太多的内存或是没有释放内存,当服务器内存用完后,然后就会很快宕机;
b、看看/var/spool/cron 里面是不是有cron(计划任务、自动任务)在对应时间段内执行;
c、检查web服务器的参数是否超过了服务器的性能,如允许最大连接数过高等;
d、进程数很高,服务瘫痪,机器假死(例如zombie进程是否过多,一直占用资源);
e、cat  /var/log/message查看系统日志是否有异常
f、检查磁盘是否有坏块。(可使用badblocks命令配合参数)
g、内核消耗过大,查看是否有瞬间资源占用过大的进程或服务;
h、ps -ef 查看进程异常否,是否存在攻击

32、网络震荡是什么原因引起的?

答:链路故障:网络上某个端口的链路属性,如端口状态、速率和双工模式等持续变化;

节点故障:单个交换机CPU较高,无法在定时间隔内发送或处理STP报文;

网络故障:网络发送拥塞,导致根端口方向的STP报文在转发过程中被丢弃;L2PT透传了其他网络的STP报文,造成本端STP误收敛;网络上错误的配置了组播抑制功能,偶尔丢弃STP报文。针对不同的故障原因,需要修改配置或者优化网络设计,解决震荡问题。

简单的说,一个模块出现问题、一根网线出现问题,导致频繁的up down几次,就会出现网络震荡。

33、sfp网络震荡是什么?如果网络问题,那应该其他所有都有影响吧?

答:网络上的交换机,由于报文变化或者定时器超时,反复触发重计算,会一直持续在根桥选择、端口角色切换、端口状态迁移三个过程,这个过程如果持续进行多次,简称为STP震荡

34、vmstat r, b, si, so, bi, bo 这几列表示什么含义呢?
[root@centos6 ~ 9# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  0      0 1783964  13172 106056    0    0    29     7   15   11  0  0 99  0  0

r即running,表示正在跑的任务数

b即blocked,表示被阻塞的任务数

si表示有多少数据从交换分区读入内存

so表示有多少数据从内存写入交换分区

bi表示有多少数据从磁盘读入内存

bo表示有多少数据从内存写入磁盘

简记:i --input,进入内存

o --output,从内存出去

s --swap,交换分区

b --block,块设备,磁盘

单位都是KB

35、TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。
答案 :

36、数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决
答案 :

37、查看占用某端口的进程和某进程监听的端口;
如何查询日志文件中的所有ip,正则表达式

38、MySQL的引擎讲一下,有什么区别,使用场景呢

39、查询最新的10条数据,;
order by id desc limit 10

40、 MySQL的union all和union有什么区别?

41、MySQL有哪几种join方式,底层原理是什么?

42、Redis怎么做集群
答 : 主从哨兵和cluster

43、Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。
答 :

44、 Redis使用哨兵部署会有什么问题,我说需要扩容的话还是得集群部署。

45、mysql大表数据查询,怎么优化,分表,分库。

46、数据库的事务怎么实现?
答 : 通过日志和锁等机制实现的。
https://blog.csdn.net/a724888/article/details/78197324

47、查看文件内容的的命令
cat 、more 、less
48、设置DNS需要修改哪个配置文件?

(1)在文件 /etc/resolv.conf 中设置DNS 

(2)在文件 /etc/sysconfig/network-scripts/ifcfg-eth0 中设置DNS

49、如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配 置文件呢?

答 : 查看主机名:hostname

centos6.5

修改主机名:hostname centos6.5-1

永久生效需要修改配置文件:vim /etc/sysconfig/network

NETWORKING=yes 

HOSTNAME=centos6.5-1

50、如何让某个服务(假如服务名为 nginx)只在3,5两个运行级别开启,其他级别关闭?
答 :

先关闭所有运行级别:chkconfig nginx off
然后打开3,5运行级别:chkconfig --level 35 nginx on

51、网卡或者硬盘有问题时,我们可以通过使用哪个命令查看相关信息?

  • 答 : 使用命令dmesg

52、分别使用xargs和exec实现这样的需求,把当前目录下所有后缀名为.txt的文件的权限修改为777

(1)find ./ -type f -name "*.txt" |xargs chmod 777
(2)find ./ -type f -name "*.txt" -exec chmod 777 {} ;

53、有一个脚本运行时间可能超过2天,如何做才能使其不间断的运行,而且还可以随时观察脚本运行时的输出信息?

使用screen工具

54、在Linux系统下如何按照下面要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
tcpdump -nn -s0 host 192.168.0.111 and port 80 -c 1000 -w 1.cap

55、想在Linux命令行下访问某个网站,并且该网站域名还没有解析,如何做?

在/etc/hosts文件中增加一条从该网站域名到其IP的解析记录即可,或者使用curl -x

56、自定义解析域名的时候,我们可以编辑哪个文件?是否可以一个ip对应多个域名?是否一个域名对应多个ip?

编辑 /etc/hosts ,可以一个ip对应多个域名,不可以一个域名对多个ip

57、我们可以使用哪个命令查看系统的历史负载(比如说两天前的)?

sar -q -f /var/log/sa/sa22     #查看22号的系统负载

58、在Linux下如何指定dns服务器,来解析某个域名?

使用dig命令:dig @DNSip  domain.com

如:dig @8.8.8.8 www.baidu.com#使用谷歌DNS解析百度

59、使用free查看内存使用情况时,哪个数值表示真正可用的内存量?

free列第二行的值

60、有一天你突然发现公司网站访问速度变的很慢很慢,你该怎么办呢?

(服务器可以登陆,提示:你可以从系统负载和网卡流量入手)
答:可以从两个方面入手分析:分析系统负载,使用w命令或者uptime命令查看系统负载,如果负载很高,则使用top命令查看CPU,MEM等占用情况,要么是CPU繁忙,要么是内存不够,如果这二者都正常,再去使用sar命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。

61.给您一台最小化安装的linux机器,如何进行基础优化?

1)更新yum官方源
2)关闭不需要的服务
3)关闭不需要的TTY
4)对TCP/IP网络参数进行调整
_4.1) 优化Linux下的内核TCP参数以提高系统性能
5)设置时间同步
6)优化最大文件数限制
7)关闭SELINUX
8)修改SSH登录配置
9)清理登陆的时候显示的系统及内核版本
10)删除不必要的系统用户和群组
11)关闭重启ctl-alt-delete组合键
12)设置一些全局变量
13)设置history历史记录
14)centos6.4最小化安装后启动网卡
15)添加普通用户,设置sudo权限
16)禁止root远程用户登录
17)sed修改远程端口
18)防火墙iptables配置
19)修改默认DNS
20)安装必要软件,更新yum源 [epel源] 
21)更新内核和软件到最新版本
22)去除上次登录的信息

62.请说出内核调优配置文件名字?举例几个内核需要优化的参数配置?

名字:/etc/sysctl.conf
net.ipv4.tcp_tw_recycle = 1 ##表示开启TCP连接中TIME-WAIT sockets的快速收回功能,默认为 0 ,表示关闭。
net.ipv4.tcp_tw_reuse = 1 ##表示开启重用。允许将TIME-WAIT sockets重新用于新的 TCP 连接,默认为 0 表示关闭
net.ipv4.tcp_syn_retries = 6 ## 默认6   时间为2^7-1 =127s             在内核放弃建立连接之前发送SYN 包的数量
#允许系统打开的端口范围
net.ipv4.ip_local_port_range = 1024 65000
#最大打开文件数
fs.nr_open = 10000000  ##单个进程可分配的最大文件数
fs.file-max = 11000000  ##表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的

63.如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?

使用命令compgen ­-c,可以打印出所有支持的命令列表。
[root@localhost ~]$ compgen -c
  1. 问: 你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?

    使用Linux命令 ’disown -r ’可以将所有正在运行的进程移除。

65.问:怎样一页一页地查看一个大文件的内容呢?

 通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要.
[root@localhost ~]# cat file_name.txt | more

66.使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?

使用命令repquota 能够显示出一个文件系统的配额信息

67.修改系统打开最大链接数

ulimit -n 查看 linux 系统打开最大的文件描述符,这里默认 1024,不修改这里 web 服务器修改再大也没用。
 修改/etc/security/limits.conf
* soft nofile 10240
* hard nofile 10240

68.用 tcpdump 嗅探 80 端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -5

69.查看当前系统每个 IP 的连接数

netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn

70.shell 下 32 位随机密码生成
cat /dev/urandom | head -1 | md5sum | head -c 32 >> /pass

71.查看 http 的并发请求数与其 TCP 连接状态

#netstat -n | awk ‘/^tcp/ {++b[$NF]} END {for(a in b) print a, b[a]}’

72.如何查看二进制文件的内容
通过 hexdump 命令 来查看二进制文件的内容。

73.检测并修复/dev/hda5

fsck 用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用 fsck 命令对文件系统进行检查,用法:

74.保存当前磁盘分区的分区表

dd 命令是以个强大的命令,在复制的同时进行转换
dd if=/dev/sda of=./mbr.txt bs=1 count=512

75.怎么把脚本添加到系统服务里,即用 service 来调用

在脚本里加入
#!/bin/bash
#chkconfig: 345 85 15
#description: httpd

76.计划每星期天早8点服务器定时重启,如何实现?

crontab-e

0008 * * 7 /sbin/init 6

77.列出作为完整邮件系统的软件,至少二类
Sendmail,postfix,qmail
78…当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存。

a.用户输入网址到浏览器;
b.浏览器发出DNS请求信息;
c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步;
d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果;
e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果;
f.返回IP结果给浏览器;
g.浏览器根据IP信息,获取页面;

79.我们都知道,dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么时候采用udp协议?为什么要这么设计?

a,从数据包大小上分:UDP的最大包长度是65507个字节,响应dns查询的时候数据包长度超过512个字节,而返回的只要前512个字节,这时名字 解释器通常使用TCP从发原来的请求。
b,从协议本身来分:大部分的情况下使用UDP协议,大家都知道UDP协议是一种不可靠的协议,dns不像其它的使用UDP的Internet应用 (如:TFTP,BOOTP和SNMP等),大部分集中在局域网,dns查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更大,这就要求dns客户端需要好的重传和超时算法,这时候使用TCP。

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

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

81.apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?

apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候加参数–with-mpm- worker选择工作模式)
prefork的特点是:(预派生)
1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销
2.可以防止意外的内存泄漏
3.在服务器负载下降的时候会自动减少子进程数
worker的特点是:支持混合的多线程多进程的多路处理模块
如果对于一个高流量的HTTP服务器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。

82.linux下如何添加路由

# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1
//添加到网络的路由
# route add –net IP netmask MASK  deveth0
# route add –net IP netmask MASK gw IP
//添加默认网关
# route add default gw IP
//删除路由
# route del –host 192.168.168.110 dev eth0

83.简述linux下编译内核的意义与步骤

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

1.内核裁减

2.打补丁

3.添加新功能/模块

步骤:
1.下载新内核源代码

2.配置内核编译参数:make menuconfig

3.选择需要添加的模块

4.开始编译

#make (代表来makebzlmage 以及 make moudles)  make -j2

5.安装编译好到模块和内核

#make modules_install (将编译好到模块复制到/lib/modules/3.0.0-rc4文件夹)

#makeinstall (安装编译好的内存映像文件)

6.修改GRUB启动菜单,增加使用新内核启动到项目

84.简述VPN,常见有哪几种?

VPN是指在公共的网络上建立专用网络的技术,但是两个节点间并没有物理上的专用的端到端链路,而是通过广域网或者运营商提供的网络平台之上的逻辑网络,用户数据在逻辑链路中传输,它可以有效的节省一般需要达到DDN专线所能达到的同样的目的,而且VPN采用身份验证和加密技术,充分保证了安全性。常见的VPN有:ipsec 、PPTP、L2TP 、SSL vp

85.请描述Linux系统优化的12个步骤。

⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。

⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。

⑶时间同步:定时自动更新服务器时间。

⑷配置yum更新源,从国内更新下载安装rpm包。

⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)

⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。

⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)

⑻精简开机启动服务(crond、sshd、network、rsyslog)

⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。

更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。

⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。)

⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

86.描述Linux下软链接和硬链接的区别
在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

④删除软链接文件,对源文件和硬链接文件无任何影响。

⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。

⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。

⑨软链接可以跨文件系统,硬链接不可以跨文件系统。

87.生产场景如何对linux系统进行合理规划分区?
分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下:

①单机服务器:如8G内存,300G硬盘

分区:  /boot 100-200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db数据)

优点:数据盘和系统盘分开,有利于出问题时维护。

RAID方案:视数据及性能要求,一般可采用raid5折中。

②负载均衡器(如LVS等)

分区:/boot 100-200M,swap 内存的1-2倍,/  ,

优点:简单方便,只做转发数据量很少。

RAID方案:数据量小,重要性高,可采用RAID1

③负载均衡下的RS server

分区: /boot 100-200M,swap 内存的1-2倍,/

优点:简单方便,因为有多机,对数据要求低。

RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0

④数据库服务器mysql及oracle如16/32G内存

分区:/boot 100-200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据)

优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。

RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。)

⑤存储服务器

分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。

RAID方案:可采取sata盘,raid5

⑥共享存储服务器(如NFS)

分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。

RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案)

⑦监控服务器cacti,nagios

分区:/boot 100-200M,swap 内存的1-2倍,/

优点:重要性一般,数据要求也一般。

RAID方案:单盘或双盘raid1即可。三盘就RAID5,看容量要求加盘即可。

88.请给出查看当前哪些用户在线的Linux命令

w        #显示目前系统登录用户

who      #显示目前已登录用户信息

last     #列出目前与过去登入系统的用户相关信息

lastlog  #检查某特定用户上次登录时间

whoami   #打印与当前生效的用户ID关联的用户名

finger   #用户信息查找程序

id       #显示指定用户或当前用户的用户与组信息

89.请写出下面Linux SecureCRT命令行快捷键命令的功能?

Ctrl + a  光标到开头

Ctrl + c 中断当前程序

Ctrl + d 退出当前窗口或当前用户

Ctrl + e 光标到结尾

Ctrl + l 清屏 相当与clear

90.请描述服务器账户日志审计的5种解决方案。

⑴通过环境变量syslog对全部全部日志进行审计(信息量太大,不推荐)

⑵sudo配合syslog服务,进行sudo操作日志进行审计(信息较少,效果不错)

⑶在bash解释器嵌入一个监视器,让所有用户使用修改过的bash程序,作为解释程序。

⑷齐治的堡垒机(商业产品)。

91.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?

①首先确定物理链路是否联通正常。

②查看本机IP,路由,DNS的设置情况是否达标。

③telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。

④ping一下网关,进行最基础的检查,通了,表示能够到达服务器。

⑤测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。

⑥测试ping公网ip的通常情况(记住几个外部IP),

⑦测试DNS的通畅。ping出对应IP。

⑧通过以上检查后,还在网管的路由器上进行检查。

92.什么是运维?什么是游戏运维?

1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,

在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术

运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等

2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维

开发运维:是给应用运维开发运维工具和运维平台的

应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查

系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等

总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑

开发运维、应用运维和系统运维他们的工作是环环相扣的

93.简述raid0 raid1 raid5 三种工作模式的工作原理及特点
RAID,可以把硬盘整合成一个大磁盘,还可以在大磁盘上再分区,放数据

还有一个大功能,多块盘放在一起可以有冗余(备份)

RAID整合方式有很多,常用的:0 1 5 10

RAID 0,可以是一块盘和N个盘组合

其优点读写快,是RAID中最好的

缺点:没有冗余,一块坏了数据就全没有了

RAID 1,只能2块盘,盘的大小可以不一样,以小的为准

10G+10G只有10G,另一个做备份。它有100%的冗余,缺点:浪费资源,成本高

RAID 5 ,3块盘,容量计算10*(n-1),损失一块盘

特点,读写性能一般,读还好一点,写不好

冗余从好到坏:RAID1 RAID10 RAID 5 RAID0

性能从好到坏:RAID0 RAID10 RAID5 RAID1

成本从低到高:RAID0 RAID5 RAID1 RAID10

单台服务器:很重要盘不多,系统盘,RAID1

数据库服务器:主库:RAID10 从库 RAID5\RAID0(为了维护成本,RAID10)

WEB服务器,如果没有太多的数据的话,RAID5,RAID0(单盘)

有多台,监控、应用服务器,RAID0 RAID5

我们会根据数据的存储和访问的需求,去匹配对应的RAID级别

94.LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
LVS: 是基于四层的转发

HAproxy: 是基于四层和七层的转发,是专业的代理服务器

Nginx: 是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发

区别: LVS由于是基于四层的转发所以只能做端口的转发而基于URL的、基于目录的这种转发LVS就做不了

工作选择:

HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大选择HAproxy或者Nginx足已,由于HAproxy由是专业的代理服务器配置简单,所以中小型企业推荐使用HAproxy

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

Squid、Varinsh和Nginx都是代理服务器

什么是代理服务器:

能当替用户去访问公网,并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接收你的请求,我先在我自已的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你

如果我在我本地没有找到你要访问的缓存的数据,那么代理服务器就会代替你去访问公网

区别:

1)Nginx本来是反向代理/web服务器,用了插件可以做做这个副业

但是本身不支持特性挺多,只能缓存静态文件

2)从这些功能上。varnish和squid是专业的cache服务,而nginx这些是第三方模块完成

3)varnish本身的技术上优势要高于squid,它采用了可视化页面缓存技术

在内存的利用上,Varnish比Squid具有优势,性能要比Squid高。

还有强大的通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存

它是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的

4)squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境

工作中选择:

要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid或者varnish。

95.什么是中间件?什么是jdk?

中间件介绍:

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯
是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口

但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递

通过中间件,应用程序可以工作于多平台或OS环境。

jdk:jdk是Java的开发工具包

它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境\

96.讲一下Keepalived的工作原理?
在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP通告信息,

BACKUP不会抢占MASTER,除非它的优先级更高。当MASTER不可用时(BACKUP收不到通告信息)

多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保证服务的连续性

于安全性考虑,VRRP包使用了加密协议进行加密。BACKUP不会发送通告信息,只会接收通告信息

97.keepalive的工作原理和如何做到健康检查

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组

这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内

其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了

这时就需要根据VRRP的优先级来选举一个backup当master。这样就可以保证路由器的高可用了

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护

及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式,vrrp模块是来实现VRRP协议的

Keepalived健康检查方式配置

HTTP_GET|SSL_GET
HTTP_GET | SSL_GET
{
url {
path /# HTTP/SSL 检查的url可以是多个
digest  # HTTP/SSL 检查后的摘要信息用工具genhash生成
status_code 200# HTTP/SSL 检查返回的状态码
}
connect_port 80 # 连接端口
bindto
connect_timeout 3 # 连接超时时间
nb_get_retry 3 # 重连次数
delay_before_retry 2 #连接间隔时间
} 

99.统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip
cat access.log | awk ‘{print $1}’ | uniq -c | sort -rn | head -10

100.使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存输出到tcpdump.log
tcpdump ‘host 192.168.1.1 and port 80’ > tcpdump.log

101.实时抓取并显示当前系统中tcp 80端口的网络数据信息,请写出完整操作命令
tcpdump -nn tcp port 80
102.服务器开不了机怎么解决一步步的排查?

103.Linux系统中病毒怎么解决

1)最简单有效的方法就是重装系统

2)要查的话就是找到病毒文件然后删除

中毒之后一般机器cpu、内存使用率会比较高

机器向外发包等异常情况,排查方法简单介绍下

top 命令找到cpu使用率最高的进程

一般病毒文件命名都比较乱,可以用 ps aux 找到病毒文件位置

rm -f 命令删除病毒文件

检查计划任务、开机启动项和病毒文件目录有无其他可以文件等

3)由于即使删除病毒文件不排除有潜伏病毒,所以最好是把机器备份数据之后重装一下.

105.你常用的Nginx模块,用来做什么
rewrite模块, 实现重写功能
access模块: 来源控制
ssl模块: 安全加密
ngx_http_gzip_module : 网络传输压缩模块
ngx_http_proxy_module 模块实现代理
ngx_http_upstream_module模块 实现定义后端服务器列表
ngx_cache_purge 实现缓存清除功能

106.请列出你了解的web服务器负载架构
Nginx
Haproxy
Keepalived
LVS

107.交换机和路由器的区别

区别一:交换机是一根网线上网,上网是分别拨号,各自使用自己的宽带,**大家上网没有影响。,**而路由器比交换机多了一个虚拟拨号功能,**通过同一台路由器上网的电脑是共用一个宽带账号,**大家上网要相互影响。

区别二:交换机工作在中继层,交换机根据MAC地址寻址。**路由器工作在网络层,**根据IP地址寻址,路由器可以处理TCP/IP协议,而交换机不可以。

区别三:交换机可以使连接它的多台电脑组成局域网 , 交换机没有路由器的自动识别数据包发送和到达地址的功能路由器可以自动识别数据包发送和到达的地址。

区别四:路由器提供了防火墙的服务路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。

108.应用层有哪些协议 ?
HTTP、FTP、TELNET、SMTP、POP3等

109、查看IP路由表
route -n
netstat -rn
ip route [show]

你可能感兴趣的:(linux)