十道linux运维常见面试题
1、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.1.81
答:iptables -t nat -A PREROUTING -d 192.168.1.81 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.81:8080
或iptables -t nat -A PREROUTING -d 192.168.1.81 -p tcp --dport 80 -j DNAT –to 192.168.1.81:8080
或iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.81 -p tcp -m tcp --dport 80 -j REDIRECT –to-ports 8080
2、简述raid0 raid1 raid10 raid5 三种工作模式的工作原理及特点。
答:RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据 传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高 性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有据。因此RAID 0 不能应用于数据安全性要求高的场合。
RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁效时, 系统可以自动切换到镜像磁盘上读写 ,而不需要重组失效的数据。简单来说就是:镜象结 构,类似于备份模式,一个数据被复制到两块硬盘上。
RAID10:高可靠性与高效磁盘结构一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。主要用于容量不大,但要求速度和差错控制的数据库中。
RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常运行。
3、简述Tcp 三次握手的过程?
答:第一次握手,建立连接,客户端发送SYN包到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手,服务器收到SYN,同时自己也发送一个SYN包和一个ACK包来确认客户端的SYN,并进入SYN_RECV;
第三次握手,客户端收到服务器发来的SYN+ACK后,回复服务器端一个ACK确认,发送完毕后,双方进入ESTABLISHED状态。
三次握手成功后,开始传输数据。
4、通过apache 访问日志access.log 统计IP 和每个地址访问的次数,按访问量列出前10 名。
日志格式样例如下:
192.168.1.133 – - [02/Jul/2010:23:44:59 +0800] ―GET / HTTP/1.1″ 200 19
答:cat access_log | awk -F“ – -” {print $1}‘ | uniq -c|sort -rn|head -10
5、对文件(如下图)进行处理,要求得到域名并统计网址出现的次数。
得到的结果如:
3 a.test.com
2 b.test.com
1 c.test.com
答:cat /test1/1.txt | awk -F"//|/" '{print $2}' |sort | uniq -c
6、一个EXT3 的文件分区,当使用touch test.file 命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h 命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况,说说你的理由。
答:两种可能。一种是磁盘配额问题,另外一种就是EXT3 文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode 耗尽了。
7、简述FTP两种工作模式的工作流程
答:在主动模式下,FTP 客户端随机开启一个大于1024 的端口N 向服务器的21 号端口发起连接,然后开放N+1 号端口进行监听,并向服务器发出PORT N+1 命令。服务器接收到命令后,会用其本地的FTP 数据端口(通常是20)来连接客户端指定的端口 N+1,进行数 据传输。
在被动模式下,FTP 客户端随机开启一个大于1024 的端口N 向服务器的21 号端口发起连接,同时会开启N+1 号端口。然后向服务器发送PASV 命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024 的端口P 进行监听,然后用PORT P 命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1 号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
总的来说,主动模式的FTP 是指服务器主动连接客户端的数据端口,被动模式的FTP 是指服务器被动地等待客户端连接自己的数据端口。被动模式的FTP 通常用在处于防火墙之后的FTP 客户访问外界FTp 服务器的情况,因为在 这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP 传输,而被动模式的FTP 可以良好的工作。
8、apache 有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
答:Prefork MPM实现了一个非线程的、预派生的web服务器。它在Apache启动之初,就先预派生一些子进程,然后等待连接;可以减少频繁创建和销毁进程的开销,每个子进程只有一个线程,在一个时间点内,只能处理一个请求。这是一个成熟稳定,可以兼容新老模块,也不需要担心线程安全问题,但是一个进程相对占用资源,消耗大量内存,不擅长处理高并发的场景。
worker使用了多进程和多线程的混合模式,worker模式也同样会先预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。线程比起进程会更轻量,因为线程是通过共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下会比prefork有更多可用的线程,表现会更优秀一些;另外,如果一个线程出现了问题也会导致同一进程下的线程出现问题,如果是多个线程出现问题,也只是影响Apache的一部分,而不是全部。
event是Apache最新的工作模式,它和worker模式很像,不同的是在于它解决了keep-alive长连接的时候占用线程资源被浪费的问题,在event工作模式中,会有一些专门的线程用来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务器的线程,执行完毕后,又允许它释放。这增强了在高并发场景下的请求处理。
9、简述DDoS攻击原理
答:DDoS攻击的原理就是通过大量的合法请求来导致目标计算机的拒绝服务,一般在DDoS发动攻击以后,被攻击的主机上面就会出现大量等待的TCP连接,而且还会有很多大量无用的数据包。不仅如此,DDoS攻击还会造成网络堵塞,严重的时候可能还会造成系统的死机。DDoS攻击原理大致分为以下三种:通过发送大的数据包堵塞服务器带宽造成服务器线路瘫痪;通过发送特殊的数据包造成服务器TCP/IP协议模块耗费CPU内存资源最终瘫痪;通过标准的连接建立起连接后发送特殊的数据包造成服务器运行的网络服务软件耗费CPU内存最终瘫痪(比如WEB SERVER、FTP SERVER、 游戏服务器等)。
10、批量加10个用户,以student1到student10命名,并统一加一个新组,组名为class,统一改密码为123。
答: