Linux试题2

来源:互联网 发布:门头广告设计软件 编辑:程序博客网 时间:2024/05/05 11:41

一、基本知识

1:请写出iptables语句

允许本机对外连接80端口(本机能连外界服务器为80)

iptables -A OUTPUT -p tcp --sport 80 -jACCEPT

 

开放本机的3306端口

iptables -A INPUT -p tcp --dport 3306 -jACCEPT

 

禁止外界Ping本服务器

iptables -A INPUT -p icmp -j DROP

 

2:在root用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是

ps aux


3:查看当前网络连接及端口情况的命令为

netstat –na or ss –l

 

4:每天的早上8点到12点中,每隔2小时执行一次/root/script/nginx_reload.sh怎么实现

0 8-12/2 * * * root/root/scripts/nginx_reload.sh


5:使用tcpdump抓包,端口为eth1目标IP为192.168.1.1目标端口为80,同时将结果保存输出到tcpdump.log,请写出相应命令。

tcpdump -i eth1 host 192.168.1.1 and tcpport 80 > tcpdump.log

 

6:如何查看当前Linux系统的状态,如CPU使用,内存使用,负载情况,网络流量,磁盘使用情况等

top/htop/sar

 

7:当用户在浏览器当中输入一个网站,说说计算机对dns解析经过哪些过程?(注:本机跟本地dns还没有缓存)

浏览器发出DNS请求信息,计算机首先查询本机的HOSTS文件,

看看是否存在,存在返回结果,不存在继教下一步查询,

计算机按照本地DNS 的顺序,向合法的DNS服务器查询IP结果,

合法的DNS服务器返回IP结果给本地DNS,

本地DNS并缓存本结果,直到TTL过期,才再次查询此结果,

返回IP结果给浏览器,浏览器根据IP信息获取页面。

 

8:下列端口所运行的服务:

21

FTP

25

SMTP

Udp:161

SNMP

873

Rsync

3306

MYSQL


9:以下http头部中的响应代码代表什么意思?

301

永久重定向

403

访问禁止

502

网关错误

503

服务不可用

 

二、简述题

1、说说apache与nginx的区别,适用哪些场合

Apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

  到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

 

apache 的特性:

1) 几乎可以运行在所有的计算机平台上.

2) 支持最新的http/1.1协议

3) 简单而且强有力的基于文件的配置(httpd.conf).

4) 支持通用网关接口(cgi)

5) 支持虚拟主机.

6) 支持http认证.

7) 集成perl.

8) 集成的代理服务器

9) 可以通过web浏览器监视服务器的状态, 可以自定义日志.

10) 支持服务器端包含命令(ssi).

11) 支持安全socket层(ssl).

12) 具有用户会话过程的跟踪能力.

13) 支持fastcgi

14) 支持java servlets

 

nginx

  nginx是俄罗斯人编写的十分轻量级的HTTP服务器,它的发音为“engineX”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

  Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。但是 Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。

 

nginx做为HTTP服务器,有以下几项基本特性:

 

1、处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.

2、无缓存的反向代理加速,简单的负载均衡和容错.

3、FastCGI,简单的负载均衡和容错.

4、Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。 

5、Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。

 6、Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

 

apache和nginx对比

 Nginx相对于Apache:

1、高并发响应性能非常好。(单台万级并发连接30000-50000/s(简单静态页))

2、反向代理性能非常好。(可用于负载均衡)

3、内存和cpu占用率低。(为Apache的1/5-1/10)

4、功能较Apache少(常用功能均有)

5、对php可使用cgi方式和fastcgi方式,没有模块编译加载方式。

 

有人通过两者的性能测试比较(nginx和Apache对比分析),得出结论:nginx作单纯的WEB服务器,也就是放静态内容,性能上比Apache要好,特别可承受压力、带宽及资源消耗上都要优于Apache。

  nginx作单纯的WEB服务器,也就是放静态内容,性能上比Apache要好,特别可承受压力、带宽及资源消耗上都要优于Apache。很多大型网站都喜欢把nginx放在前端,Apache作为后端。

 

 2、简述X-Forwarded-For和REMOTE_ADDR是什么。如果想取到真实的客户端ip(不被伪造)用哪个,为什么?

remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP。

  什么是x_forwarded_for,正如上面所述,当你使用了代理时,web服务器就不知道你的真实IP了,为了避免这个情况,代理服务器通常会增加一个叫做x_forwarded_for的头信息,把连接它的客户端IP(即你的上网机器IP)加到这个头信息里,这样就能保证网站的web服务器能获取到真实IP

 如果想取到真实的客户端IP用X-Forwarded-For

 

3、简述raid0,raid1,raid5,raid10之间的区别

RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。

 RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

 RAID 5:RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

 RAID 01/10:根据组合分为RAID 10和RAID 01,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID 0/1/5/10,但不支持RAID 01。


4、你使用过哪些监控软件,特点是?

深信服,Nagios,Cacti,Zabix

 

5、你接触过哪些缓存系统,请列出来

Memcache Redis

 

三、脚本命令

1:用命令行统计ip访问情况,要求分析nginx访问日志,找出访问stat_inst.php页面数量在前10位的IP数,以下是nginx的访问日志节选

200.101.129.218 - - [26/Mar/2006:23:58:55+0800] “GET

/online/stat_inst.php?pid=d065 HTTP/1.1 “30220-“-“ “-“ “Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.1)”

请写shell实现输出top10的IP列表

awk '/stat_inst.php/ {print $1}' |uniq -c|sort -rn|head -10

 

2:针对nginx写个脚本来执行平滑重启?

kill -HUP `cat/usr/local/nginx/logs/nginx.pid`

 

3:写一个shell命令查找/data/backup/文件夹下面最后创建时间是3天前,后缀是*.php的文件并删除。

find /data/backup -mtime +3 -name"*.php" -exec rm -fr {} \;

0 0
原创粉丝点击