别慌,我还要800多道题目。我想进大公司啊!难耐实力还没到一定程度,哎!
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 sysp_w_picpath,重新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地址】