test exam

1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。

   tcp三次握手:

第一次握手:客户端A发送SYN包到服务器B,并进入SYN_SEND状态,等待服务器B确认

第二次握手:服务器B收到SYN包之后,必须确认客户端A的SYN,同时自己也发送一个SYN包,SYN+ACK包,此时服务器B进入SYN_RECV状态

第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK,此包发送完毕,客户端A和服务器B进入到ESTABLISHED状态,完成3次握手

   tcp四次断开:

1、客户端A发送一个FIN,用来关闭客户端A到服务器B的数据传送

2、服务器B收到这个FIN,会发回一个ACK,确认序号为收到的序号+1,和SYN一眼,一个FIN将占用一个序号

3、服务器B关闭与客户端A的连接,发送一个FIN给客户端A

4、客户端A发回ACK报文确认,并将确认序号设置为收到的序号+1 

2、说说进程和线程的区别

进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进产生影响。

而线程只是进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。

所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些

3、查询file.txt以abc结尾的行

grep "abd$" file.txt 

4、删除file.txt文件中的空行

sed -i /^$/d test.tst

5、打印file.txt文件中的第10行

sed -n 10p file.txt

6、对MySQL数据库test进行备份和恢复

备份:mysql -uuser -ppassword -R –single-transaction –quick –default-character-set=utf8 –opt test > /data/bak/test.sql 

恢复:mysql -uuser -ppassword < /data/bak/test.sql

7、用netstat统计系统当前tcp连接的各种状态的连接数。

netstat -tan | awk '$1 ~ /^tcp/ {a[$NF]++;} END {for (state in a) { print state,a[state]}}'

8、linux下如何将GBK编码格式的test_gbk.txt文件转换成UTF-8编码格式,转化后的文件名为 test_utf8.txt

iconv test_gbk.tst -f gbk -t utf-8 -o test_utf8.txt 

9、说说你用过哪些监控软件,并简述其原理及适用场景

nagios 

zabbix

10、写出查看linux系统性能的命令,如cpu、内存、流量、io等

top htop

vmstat free 

dstat

iftop  

11、说说nginx的upstream支持的分配策略,并简述其原理

第一种,轮询rr(默认)

       每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。

第二种加权轮询wrr

   根据各主机的负载能力,计算调度至哪台主机    

第三种,ip_hash

   每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

第四种url_hash(第三方)

   按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

12、crontab定时:在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh  怎么实现

* 6-12/2 * 11 * /usr/bin/httpd.sh 

13、iptables禁止 ip 10.10.10.1 访问本地80端口

iptables -I INPUT -s 10.10.10.1/32 –dport 80 -j DROP

14、找出在文件a中但不在文件b中的内容,用命令后编写脚本实现

#!/bin/bash

 diff -n a b > diff.txt

15、编写shell循环创建100个用户,用户名格式user_[0~99]

#!/bin/bash/

if [ ! $UID -eq 0 ]

then

echo "plz user root user"

exit 1 

fi 

for id in {0..99}

do 

if id user_$id &> /dev/null;then

echo "The user_$id exists"

else 

useradd user_$id

if [ $? -eq 0 ];then

echo "user_$id" |passwd –stdin user_$id &> /dev/null 

echo "The user_$id is finised"

fi

fi

done 

原创文章,作者:随梦而飞,如若转载,请注明出处:http://www.178linux.com/18168

(1)
随梦而飞随梦而飞
上一篇 2016-06-12
下一篇 2016-06-12

相关推荐

  • 来测测你的Linux基础能力合格吗?

    “努力,让日子更从容、更愉悦、更优雅一些。”——马哥 运维人员想要生活更从容、更愉悦、更优雅必须有更扎实的linux技术支撑才可以。 我们学了这么就的linux,那到底我们处在一个什么样的水平呢? 下面一起来测试一下吧! 测试规则: 本次测试不设分数,只为让大家测试知识点(Linux博大精深测试如有不全面不到位的地方在所难免,请大家在留言区评论指正,我们会进…

    2016-03-28
  • 运维高考题解答

     1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个…

    Linux试题 2016-06-18
  • 高考答案

    1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 答:三次握手:        客户端发起连接请求SYN给服务器端        服务器端发送ACK回应及SYN请求给客户端    &nbsp…

    Linux试题 2016-06-18
  • 马哥教育网络班20期第1周课程练习

    答: 1、 ①控制器:是计算机的中枢神经,协调计算机各部分工作及内存与外设的访问等 ②运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 ③储存器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。 ④IO:输入设备是将数据或控制命令等信息输入到计算机。输出设备把机算机的各种数据符号及文字或各种控制信号等…

    Linux干货 2016-06-23
  • 马哥教育网络20期第九周课程练习

    1、 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;#!/bin/bash#foruser in $(awk–F:‘{print $1}’ /etc/passwd);doif [ “ $( cat /etc/passwd|grep &#82…

    Linux试题 2016-08-22