linux意想不到题3

Linux面试(三)上

1 服务器的linux系统是什么版 ?

答:CentOS 6.6,RHEL 6.4。 用cat /etc/rehat-release或者uname -a或者lsb_release -a再或者cat /etc/issue

2 linux你做过那些优化?

答:(1)sysctl -w优化内核参数比如TCP连接超时net.ipv4.tcp_fin_timeout=30

(2)服务器硬件本身的优化,使用固态硬盘或者RAID阵列提高磁盘寻道能力,

(3)使用最小化安装或者源码包编译安装,写一键安装脚本

(4)对某个具体服务的配置文件的参数优化,比如my.cnf的socket=/tmp/MySQL.sock,buffer_size,wait_timeout

(5)做负载均衡和keepalived主备切换

(6)禁用开机不必要的服务

3 在linux上部署过那些服务 

答:很多。kickstart、rsync+inotify、NFS、LAMP、LNMP、FTP、DNS、Samba、DHCP、Nagios、Cacti,等等

4 你怎样用nagios做的监控,监控什么?

答:首先使用yum源安装nagios所需的组件如apache、gcc、glibc、gd库等,在服务端源码包安装nagios主程序,groupadd nagios,useradd -g nagios nagios, /configrure --prefix=/usr/local/nagios,然后make all,make install,make install-init,make install-config ,make install-webconf,。主程序安装完毕后,安装插件。然后身份验证htpasswd -c /usr/local/nagios/etc/htpasswd.user      admin。nagios实现监控的方式有SNMP、NSClient++、NRPE,重启apache和nagios服务后。在浏览器登入http://IP地址/nagios,  监控的东西有主机的存活状态、CPU的使用率、负载、磁盘IO量、swap进出量、MySQL主从复制状态、LVS的VIP以及网络流量状况

*5 用cacti怎样对网络进行监控?以前公司的情况(问具体的数字)? 

答:需要安装工具rrd-tool存储数据通过web界面以图表形式返回给用户,它主要通过SNMP采集数据来监控流量。

6 你怎样查看日志?查什么内容?

答:(1)查看服务的访问日志,用awk统计访问IP地址的次数,检测是否有恶意访问

(2)当服务不能正常运行,首先先查看服务的错误日志error_log,然后查看系统所有日志信息/var/log/messages,最后查看/etc/syslogd.conf系统日志的配置文件。

(3)还能查看/var/log/wtmp记录登入者的信息, 以及lastlog文件记录登入者的时间信息和终端

*7 安装PHP之后,你做了那些优化?

答: (1)PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。

(2)编译 PHP 时,建议采用如下的参数: --enable-inline-optimization  --disable-debug

(3)把基于文件的会话切换到基于共享内存的会话。编译 PHP 时采用 --with-mm 选项,在 php.ini 中设置 set session.save_handler=mm 。这个简单的修改能让会话管理时间缩短一半。

8 会用shell吗?都用shell做什么? (这个问题问的概率很大)

答:答:批量干什么事情、备份什么东西、监控什么什么。

(1)监控磁盘分区、CPU、内存使用率达到什么程度后就邮件报警mail -s 

(2)用wget、curl判断服务状态是否OK,判断进程、端口是否存在

9 你对apache做了那些优化? (LAMP的优化是重点)

答:(1)在httpd.conf 设置HostnameLookups off

(2)修改 httpd.conf 中的 SendBufferSize 为最大的页面文件的大小。加大内核的 TCP/IP 写缓冲大小。

(3)动态页面转静态页面

(4)使用CDN内容分发网络,提高站点访问效率

(5)扩充硬件,使用nginx+apache的负载均衡方式。

10 mysql你都修改了那些配置文件来进行优化(问配置文件中具体修改的内容)?  

答:vi /etc/my.cnf,参数有skip-external-locking,key_buffer_size=384M,max_connetions=768,table_cache=1024,wait_timeout=10等等

11 用到的什么架构?用什么语言写的,(jsp?asp?php?)画一下架构图并简要介绍一下你们公司的架构。

答:2台LVS+keepalived————>4台nginx————>一大堆应用服务器(httpd、DNS、email等)————>MySQL主从

12 查看正在运行的端口用什么命令?

答:netstat -tulpn 

13 用正则表达式做域名排序:n个http://www.sina.com/mail 让把www.sina.com提出来倒着排序, 

答:awk -F "/" '{print $3}'|sort |uniq -c |sort -nr

14 监控会么?你们公司对几台服务器做了监控,监控了哪些服务?如果给你50台服务器,让你监控所有服务器的80端口具体怎么做 

答:nagios、zabbix,服务端安装完毕后,加入客户端响应的配置信息文件

15 rsync远程连接的时候受控端的验证怎么做?

答:客户端也要装rsync,在rsync.passwd中写入密码,跟服务端的一样,在/usr/local/rsync/创建rsync.conf文件

16 shell脚本会么?会哪些编程语言?你要说你会shell脚本,问你写过什么脚本? 

答:...

17 raid0 raid1 raid5工作原理有什么区别?你们用的哪种? 

答:raid0:将全部数据分散在所有磁盘上,利用率为100%,没有容错能力,最少需要2块磁盘;

raid1 :利用镜像功能,每份数据都复制一份在磁盘上,最少需要2块磁盘,利用率为50%,读性能优异,具有冗余能力,但是成本太高

raid5:最少需要3块磁盘,其中2块存放数据,第3块存放奇偶校验码,当其中一块磁盘上数据丢失后,能够通过校验码来恢复数据,所有具有良好的容错能力

18、lvs有哪三种?你们用的哪种?这种集群有什么优势?也就是和其他两种的对比分析下差异。apache熟悉么?模块知道什么如何优化?nginx怎么把来自80端口的请求交给8080?

答:(1)NAT:当调度器收到一个数据包,其中源IP地址是客户端IP地址,目的IP地址是VIP,经过调度器就把目的IP地址替换成真实服务器的IP地址,根据某种调度算法,把请求交给后端的某台服务器,服务器处理后,进行应带数据包,该数据包的格式为源IP地址是RIP,目的IP是调度器出接口的IP,再次返回到调度器的时候,根据缓存的映射关系,将目的IP替换为客户端的IP。那么这种优势在于,既支持linux操作系统又支持windows操作系统,缺点是,调度器容易成为瓶颈。

(2)DR:称为直接路由模式,要求调度器和后端服务器共享VIP,当调度器收到请求数据包的时候,发出ARP请求,替换目的MAC地址交给后端的服务器处理,处理完毕,直接返回给客户端,而不经过调度器,那么从而较少了系统开销,调度器能处理更多的并发请求。

(3)隧道模式:将私有IP地址进行封装,外部是公有IP,要求后端服务器支持隧道协议,而且也是不经过调度器。

apache模块优化:注释掉一些不需要用的模块

端口转换:echo 1 >/proc/sys/net/ipv4/ip_forward  ,iptables -t nat -A PREROUTING -s [源IP] -p tcp --dport 80 -j REDIRECT --to-port 8080 

19 memcache工作的时候用到过么?什么命令清理缓存?

答:flush_all,作用大概是第一次从硬盘中读取数据,最后将结果放入内存中,下次访问网站的时候,效率就很高,很多公司都这样干

20 iptables几个表  

答:四表五链,表:netfilter nat mangle raw 链:PREROUTING INPUT FORWARD OUTPUT POSTROUTING

21 iptables熟练么?简单的规则懂么?有几个表几个链?

答:规则举例:iptables -t nat -L ,iptables -F ,iptable -D INPUT 1,iptables -p INPUT DROP //如果没有明确说明,默认拒绝INPUT链上的规则

22 SecureCRT如何操作时防断线

答:断线的原因有:(1)触碰了网线(2)物理主机关机或者休眠(3)网络拥塞导致断线(4)误操作reboot或者service network stop(5)iptables干掉了SSH会话

23 apache怎么调优?

答:(1)动态页面转静态页面

(2)httpd.conf中HostnameLookups off

(3)httpd.conf中SendBufferSize的大小为最大页面大小,加大TCP/IP内核写缓存大小

(4)使用CDN内容分发网络,提供站点的访问效率

(5)扩充硬件,使用nginx+apache负载均衡方式

24 用过什么监控工具? 

答:glances/cacti/nagios/zabbix

25 nagios怎么同时监控80台服务器的状态?

答:每台服务器安装nagios客户端,nagios-plugin和nrpe,Nagios服务端写入配置文件。

26 你们公司的架构是什么样的?怎么做的cdn

答:CDN(内容分发网络)是个边缘网络,距离用户最近部署站点,从而提高网站的访问效率。知道的就这么多,反正这是个大工程。

27 对日志都做过哪些操作?用什么做的? 

答:排错啊,重要日志有/var/log/message,以及/var/log/lastlogs,配置文件/etc/syslogd.conf,还有很多访问日志和服务日志用于统计和排错使用

28 做过哪些调优?

答:调优不好办,慢慢研究  

29 会用哪些编程语言,写过什么shell脚本? 

答:略

30 memcache怎么清理缓存 

答:telnet localhost 11211 然后flush_all  

31 linux基本服务的配置都会吧? 

答:不要文档还真不行

32 linux apache mysql调优 

答:重难点,好说不好做。

33 画出自己公司的架构图

答:略 

34 apache的MPM  

答:都说烂了。

35 给出一套网游架构 分析优缺点(从架构设计、维护成本、数据与备份) 

答:C/S架构

36 exchange都做过什么? 

答:这是听说微软开发的邮件服务器,没时间学

37 lvs 的模式和算法 ? 

答:模式:DR、NAT、tunnel         算法:有11种之多,常见4种,轮询、加权轮询、最少连接、加权最少连接(将请求交给已经建立连接数较少的服务器上)

38 postfix工作原理  

答:不了解。流程:接收邮件、将邮件排入队列、递送邮件

39 你对lvs 掌握到什么程度? 

答:3大模式原理理解,四种调度算法了解,配置不够熟悉。

40 iptable会吗?都做过什么? 

答:(1)第一次部署虚拟机web服务器,需要开放80端口,iptable -t filter -A INPUT -p tcp --dport 80 -j ACCEPT,然后保存

(2)squid部署透明代理的时候需要设置:iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3218

 iptables -t nat -A POSTROUTING -o eth1 -p tcp -j MASQUERADE

41 你说一下linux 的启动流程 (50%概率要考,再复习一遍)

答:(1)BIOS加电自检,决定从网络、硬盘或者USB、光盘等方式启动

(2)读取MBR,加载bootloader,出现grub菜单,加载内核

(3)启动第一个进程即init进程,读取/etc/inittab,决定从哪个运行级别启动

(4)侦测硬件,加载驱动程序,执行/etc/rc.sysint系统初始化,比如网络、时区等

(5)运行一些某个级别下开机自启服务,启动内核模块

(6)读取/etc/rc.local,执行开机运行脚本

(7)miggety程序运行/bin/login,出现用户登录界面,经过身份认证后,用户方可使用操作系统

42 nagios报警值 (这个问题,我真的被问过,估计还要问监控啥东西)  

答:(1)、返回的状态值为0,表示OK,没有异常。

(2)、返回的状态值为1,表示WARNING,会触发WARNING报警。

(3)、返回的状态值为2,表示CRITICAL,会触发CRITICAL报警。

(4)、返回状态为3,表示UNKNOWN。

43 你平时都干什么?  

答:10小时分段学习,8—9小时睡眠,剩下的时间玩手机、吃饭、瞎逛思考人生(谁叫我单身狗呢,嘤嘤嘤!)。

44 前台和后台的进程怎么杀掉?

答:前台进程:立即终止ctrl+C,kill -9 【进程PID】或者pkill -9 【进程名】

后台进程:用jobs -l查看有哪些后台进程?会有PID显示,然后再用kill -9 PID

##前台转后台,按下ctrl+Z,输入bg,输入disown,最后exit           后台转前台:fg %工作号  ,其中工作号可以用jobs -l查看,工作号不是PID 

45 服务器宕机了如何处理?(重要,也不好回答)

答:原因:由于用户访问量过大,造成资源耗尽,或者你网站的数据超出你的空间限制范围大小也会出现宕机,最后就是遭遇攻击。

办法:(1)重启,如果reboot不灵的话,若是在机房,一般只能按机箱上的reset健来重启,如果远程登录,echo 1 > /proc/sys/kernel/sysrq    echo b > /proc/sysrq-trigger

(2)先用其他服务器承担一段时间业务,然后对故障机是该更换硬件了

(3)另外这种情况,本来就不好解决,立即通知最有丰富经验的人来解决,以免自己耽搁时间。

46 你对小型机了解吗 

答:过时了

47 遇到故障如何排除?举一个例子; (呵,这玩意80%又要问啊,要熟记)

答:(1)root用户忘记密码:进入单用户模式,passwd rooot更改密码;

(2)grub文件损坏,进入linux rescue 模式,chroot sysimage,重新gurbinstall

(3)服务不能正常运行,首先测试故障所处范围,然后查看系统日志,最后查看服务日志,逐步排错

(4)命令丢失:在另一台主机上,用rpm -qf 找到对应命令安装包,然后用scp命令远程拷贝过来,再进行安装,并移至相应位置

(5)网站响应极慢:检查是不是客户端网络拥塞问题,如果不是再定位到服务端,系统负载过大,查看什么进程占用了较大负载,或者说我们服务的配置本身有问题,应对不了大并发连接,建立先要ab或者httperf测试一下并发量,再去琢磨修改,然后PHP响应慢,可能是SQL代码查询效率太低,该删的要删,最后是MySQL响应慢问题,可能是磁盘IO性能不好,先换换硬件,比如固态硬盘和RAID阵列,也有可能是配置文件没有做好优化措施。

##top命令, 键入M可以达到以内存占用率大小顺序排列,键入P可以达到以CPU使用率顺序排序

(3)服务不能够正常运行,(1)先

48 会不会编写脚本

答:略

49 会不会部署squid 

答:看来是重点啊

50 游戏架构了解多少  

答:P2P结构、C/S结构、会话大厅结构  参考文档:http://www.cnblogs.com/kanego/articles/2171009.html

服务器的运行流程如下:

(1)创建一个套接字,绑定IP和端口。

(2)服务器监听端口,等待连接。创建一个游戏大厅。

(3)服务器处于等待状态,因此需要两个进程/线程在服务器端运行:一个界面线程,处理游戏菜单操作;一个网络线程,等待连接。

(4)在每个客户端创建一个Socket,连接游戏服务器。

(5)服务器更新连接信息,并在游戏大厅上显示。同时,将连接用户信息发送给每个连接用户。

(6)当所有的用户都连接到服务器上开始游戏,关闭服务器侦听的套接字,中断所有等待的连接,新的用户将不可能连接上服务器。

51 怎么样测试网站最大流量? 

答:使用jmeter工具,得出每条访问请求数throughoutput,再推算出日均访问量。

52 会不会安装系统 

答:会,有时候一台虚拟机不能满足需要测试,需要多装几台,过一段时间,删除系统,重新装系统和服务,加强熟悉

53 linux怎么调优的

答:太多了,四个角度入手。硬件、软件编译安装、服务配置文件、底层内核参数

54 以前有多少台服务器

答:小公司:500台;中型公司:2000台 大型公司:1W台

55 以前公司的pv多少 

答:PV就是page view的意思,页面访问量,像阿里这种每天应该千万级别吧

56 apache mpm 区别 

答:略

57 用过什么负载均衡  

答:对于服务器来说,硬件:F5 BIG-IP; 软件:nginx负载均衡,HAproxy,LVS+Keepalived

58 做负载均衡 真实服务器ABC 用户访问A并且上传了图片在A服务器,下次负载到B,B没有图标,用户怎么请求图片 

答:这是一个负载均衡同步问题。还是老样子,部署rsync+inotify或者在A服务器部署NFS,进行共享。其实我想B服务器能不能有一个指向A服务器资源的链接,但是呢。这样就没有负载均衡的效果了,所以我想反向代理行不行,当B找不到对应的资源的时候,就去向A请求。

59 用什么监控?  

答:Cacti监控流量、Nagios监控服务

60 编写过脚本吗?(一定要说出有点水平的脚本来,瞎吹也行)

答:(1)nginx日志切割(2)rsycn的服务端的同步脚本(3)还有nagios监控脚本  ;批量干啥玩意、备份啥玩意、监控啥玩意

61 ospf相比rip的优点 

答:OSPF:(1)收敛速度快(2)适合大中型网络(3)划分区域提高了它的可管理性(4)优良的防环机制(5)即支持明文认证,有支持密文认证(6)支持等价负载均衡 (我研究的领域侧重点已经不是网络了,不然我能说出一大堆来,嘻嘻)

62 进程和线程的区别 (最喜欢考这个了)

答:(1)线程是CPU调度的基本单位,而进程是CPU分配的基本单位(2)一个进程中含有多个线程,线程之间共享地址空间,从而提高它的访问效率,而每个进程独占资源(3)相比进程而言,线程是一个更切近执行体的概念。(3)线程经常用在对称多处理技术上,线程之间通信快,切换速度也快。

63 squid 配置过吗? 

答:跟大多数缓存原理相同,如果有则...如果没有....

64 存储了解吗 ? 

答:SAN和NAS

65 apache 的keepalive是做什的?  

答:保持长连接,避免不断的建立和终止TCP连接增大系统开销。

66 lvs有哪些模式?你们原来用什么模式 

答:略

67 你了解dr 原理吗?  

答:DR称为直接路由模式。后台服务器共享VIP地址,当调度器收到一个请求数据包的时候,根据某种调度算法,将请求交给后端某台服务器来处理,同时更改数据的目的MAC地址,发出ARP请求,但是不作出ARP应答,服务器处理完请求,封装应答包的时候,不经过调度器,直接返回给客户端,从而提高了系统效率,调度器能处理更多的并发连接。

68 两台directory数据怎么共享存储

答:(1)rsync+inotify实时同步(2)后端连一台NFS,但是不够安全(3)

69 说说你在以前公司的主要职责是什么(这玩意估计经常考) 

答:(1)保证机房物理上的安全,路由器、交换机、服务器及个人PC正常运作(2)对操作系统防漏洞、防入侵、使用权限、密钥管理等(3)对服务的安装配置、排障、权限授予以及身份验证(4)对用户进行操作培训教育(5)编写完善的运营维护技术文档(6)数据备份以及灾难恢复等。

70 以前使用过什么架构 

答:无非就是2台LVS+keepalived,4台nginx,一大堆应用服务器,后台2台MySQL主从

71 以前用什么监控网络流量,网络流量大概是多少。 

答:Cacti监控流量

72 画一下你们公司的服务器架构

答:略

73 你们公司运维人员有几个 

答:一般中型公司,怎么也得2000+台服务器吧,估计至少20人。

74 你们是怎么做的服务器的高可用?

答:所谓高可用就是保证服务器的在线处理能力,一台挂掉之后,另一台能够迅速接替,使用keepalived主备切换。

75 问我做高可用的两台服务器是用什么线连在一起的。 

答:双绞线,准确来说交叉线

76 对raid了解吗?  

77 你们用的什么服务器 

。。。

78 对nas了解吗? 

答:NAS(Network Attached Storage:网络附属存储),它是一种数据存储服务器。允许用户在网络上存取数据,NAS设备集中管理和处理网络上的所有数据

##SAN 和NAS的区别:

(1)SAN是一种网络,NAS产品是一个专有文件服务器或一个只读文件访问设备。

(2)SAN是在服务器和存储器之间用作I/O路径的专用网络。

(3)SAN包括面向块(iSCSI)和面向文件(NAS)的存储产品。

(4)NAS产品能通过SAN连接到存储设备

79 会源码编译吗?

答: ./configure检验gcc,配置环境   make编译  make install安装

  

80 你觉得你现在的技术在那个层次?内核的编译,系统参数的调优。 

答:4-5个月linux基础,我目前所处初级运维工程师到中级运维工程师过渡的阶段。

81 服务器的linux系统是什么版 

答:用cat /etc/rehat-release或者uname -a 或者cat /etc/issue,用file /bin/ls

82 linux你做过那些优化 

答:一般来说,从三个大方向:硬件、服务编译安装、配置文件入手

83 在linux上部署过那些服务 

答:rsync+inotify、kickstart、LAMP、nginx、FTP、DNS、Samba、DHCP、Nagios、Cacti,等等

84 apache使用的版本 

答:2.2 ,可以用rpm -q httpd 查看,源码包的话使用/usr/local/apache2/bin/apachectl -V 

85 apache使用的工作模式  

答:prefork和worker

86 apache的主配置文件以及虚拟主机的配置文件 

答:/etc/httpd/conf/httpd.conf。虚拟主机vi /etc/httpd/conf.d/vhosts.conf

87 端口转发80 转到8080

答:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080    ##其实就可以理解为从80端口接收请求数据包,从8080端口发出应答数据包

88 内核编译命令?(你编译过内核吗,这个问题可能会被问)

答:make menuconfig    ##参考文档:http://blog.csdn.NET/xiaocainiaoshangxiao/article/details/21931801

  

89 把某文件夹下小于10k的文件移动到tmp文件夹下

答:find 某文件夹/ -10k -a type f -exec mv {} /tmp ;

90 iptable保存 恢复 

答:service iptables save,service iptables restart

91 httpd配置文件位置

答:(1)源码包安装:/usr/local/apache2/conf/httpd.conf   (2)二进制包安装:/etc/httpd/conf/httpd.conf  

92 rsync的使用?

答:通常结合inotify监控工具,达到实时同步的效果

93 cp和mv的区别?

答:(1)就文件来说,cp 在产生新文件的同时,原文件不变,而mv会移走原文件到指定位置(2)就改名来说,mv 直接将该文件改名,不会产生新的文件,而cp 使原文件名不变,同时产生新文件,并改名

  

94 postfix邮件发不出去的原因?

答:(1)域名解析问题(2)因为网关或者其他原因造成的网络不通(3)邮件服务器不正常 (4)selinux问题

95 邮件发不出去的解决办法?

答:(1)域名解析问题:/etc/hosts(2)因为网关或者其他原因造成的网络不通:路由交换,逐点ping来排错(3)邮件服务器不正常:看日志 (4)selinux问题:禁用,vi /etc/sysconfig/selinux,selinux=disabled

96 smtp的端口

答:25 

97 之前使用的操作系统版本

答:redhat 6.4 ,CentOS 6.6

98 是否会用freebsd?

答:只知道是Unix,操作手段略有不同

99 之前工作中所遇到的重大事故及解决办法 

答:一般是误操作把某些数据给删了,灾难恢复很难办;或者遭遇网络攻击,手足无措

100 是否会部署缓存DNS ?

答:(1)缓存服务器主机安装yum -y install bind caching-nameserver, cd /etc, cp –p named.caching-nameserver.conf named.conf ##-p保持属性不变。vi named.conf ,view localhost_resolver {match-clients { any; }; match-destinations { any; };

(2)在主域名服务器上vi /var/named/test.com.zone ,添加localhost.localdomain. IN A 【缓存服务器的IP地址】

原文地址:https://www.cnblogs.com/liuyiting/p/6835619.html