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.www58058.com/18168

(1)
隨夢而飛隨夢而飛
上一篇 2016-06-12
下一篇 2016-06-12

相關推薦

  • 運維高考題解答

     1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。 在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個…

    Linux試題 2016-06-18
  • 馬哥教育網絡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
  • 高考答案

    1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。 答:三次握手:        客戶端發起連接請求SYN給服務器端        服務器端發送ACK回應及SYN請求給客戶端    &nbsp…

    Linux試題 2016-06-18
  • 馬哥教育網絡班20期第1周課程練習

    答: 1、 ①控制器:是計算機的中樞神經,協調計算機各部分工作及內存與外設的訪問等 ②運算器:運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工處理。 ③儲存器:存儲器的功能是存儲程序、數據和各種信號、命令等信息,并在需要時提供這些信息。 ④IO:輸入設備是將數據或控制命令等信息輸入到計算機。輸出設備把機算機的各種數據符號及文字或各種控制信號等…

    Linux干貨 2016-06-23
  • 來測測你的Linux基礎能力合格嗎?

    “努力,讓日子更從容、更愉悅、更優雅一些?!薄R哥 運維人員想要生活更從容、更愉悅、更優雅必須有更扎實的linux技術支撐才可以。 我們學了這么就的linux,那到底我們處在一個什么樣的水平呢? 下面一起來測試一下吧! 測試規則: 本次測試不設分數,只為讓大家測試知識點(Linux博大精深測試如有不全面不到位的地方在所難免,請大家在留言區評論指正,我們會進…

    2016-03-28
欧美性久久久久