運維面試題, 不知是否正確的答案

1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。

握手:

client 發送請求SYN到 server; 狀態:server;初始狀態為LISTEN,client 發送SYN后變為SYN_SENT

server 發送ACK回應,并發送SYN請求到 client;狀態:服務器收到SYN后,變為SYN_RCVD,發送ACK+SYN后,變為ESTAHLISHED

client 發送ACK到服務端,連接建立。 客戶端變為ESTABLISHED

揮手:

client 發送斷開請求FIN到 server;狀態:客戶端發送FIN后,變為FIN_WAIT_1

server 發送ACK回應 client;狀態:server收到FIN后,變為CLOSE_WAIT,client收到ACK后,變為FIN_WAIT_2

server 發送FIN到 client;狀態:server發送FIN后,變為LAST_ACK狀態,client收到FIN后,變為TIME_WAIT

client 發送ACK到 server,連接斷開;狀態:server收到ACK后,變為CLOSED。

2、說說進程和線程的區別

進程是程序在執行過程中的基本單位。每個進程至少包含一個線程,線程之間可以共享變量,進程之間需要使用queue等機制實現變量的共享。

3、查詢file.txt以abc結尾的行

grep 'abc$' file.txt

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

sed -i ‘/^$/d’ file.txt

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

sed -n ‘10p’ file.txt

6、對MySQL數據庫test進行備份和恢復

備份:mysqldump -uroot -p test > ~/test.sql

恢復:mysql -uroot -p < ~/test.sql

7、用netstat統計系統當前tcp連接的各種狀態的連接數。

netstat -an | awk '/^tcp/ {print $NF}' |uniq -c

8、linux下如何將GBK編碼格式的test_gbk.txt文件轉換成UTF-8編碼格式,轉化后的文件名為 test_utf8.txt

#!/bin/env python

f_gbk = open(‘test_gbk.txt’, ‘r’)

f_utf = open(‘test_utf8.txt’,’a’)

for line in f_gbk: 

line = line.decode(‘gbk’) 

f_utf.write(line.encode(‘utf-8’))

f_gbk.close()

f_utf.close()

9、說說你用過哪些監控軟件,并簡述其原理及適用場景

zabbix,原理:agentd搜集被監控服務器的信息,傳給服務端,服務端寫入數據庫。

再通過php的網頁將數據展現出來

適用場景:監控支持snmp的設備,監控linux主機,監控mysql redis mangodb的狀態

10、寫出查看linux系統性能的命令,如cpu、內存、流量、io等

ps top free iostat vmstat netstat iptraf

終極解決方案 阿里巴巴開源的tsar

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

輪詢:請求按順序分配到后端服務器

weight:與輪詢相同,對weight增加權重

ip_hash: 根據ip的hash結果分配到固定的后端服務器

url_hash: 與ip_hash相同,不過按照url的hash結果分配到固定的后端服務器

12、crontab定時:在11月份內,每天的早上6點到12點中,每隔2小時執行一次/usr/bin/httpd.sh  怎么實現

echo '*  6-12/2 * 11 * root /usr/bin/httpd.sh' >> /etc/crontab

13、iptables禁止 ip 10.10.10.1 訪問本地80端口

iptables -A INPUT -s 10.10.10.1 -p tcp —dport 80 -j DROP

14、找出在文件a中但不在文件b中的內容,用命令后編寫腳本實現

#!/bin/bash

diff a b | grep '>' | sed -r 's/>(.*)/\1/g'

15、編寫shell循環創建100個用戶,用戶名格式user_[0~99]

#!/bin/bash

for i in `seq 0 99`; do

useradd "user_$i"

done

原創文章,作者:aaron,如若轉載,請注明出處:http://www.www58058.com/18969

(0)
aaronaaron
上一篇 2016-06-23
下一篇 2016-06-23

相關推薦

  • LAMP基于編譯安裝方式實現(httpd與php以fastcgi方式結合)3

    概述     在某些現有rpm包不能滿足需求的時候,可能需要編譯安裝LAMP環境,本篇就介紹下php與httpd結合方式為fastcgi方式結合時的編譯安裝,同時,由于httpd與php以module方式結合時,僅是編譯選項有所差別,故也會簡單說明下編譯選項的差異 環境     CentOS7系統,…

    Linux干貨 2016-10-17
  • Redis高可用架構(1)—Keepalive+VIP

    最近整理一下Redis高可用架構的文檔,也準備分享出來,雖然這些架構也不是很復雜。Redis的高可用方案目前主要嘗試過5種方式,其中2種方式已經在線上使用。 1)Redis Master-Slave + Keepalive + VIP。這是很經典的db架構,也可以用與mysql的主從切換。基本原理是:Keepalive通過腳本檢測master的存活,然后通過…

    Linux干貨 2016-04-13
  • Lua簡明教程

    這幾天系統地學習了一下Lua這個腳本語言,Lua腳本是一個很輕量級的腳本,也是號稱性能最高的腳本,用在很多需要性能的地方,比如:游戲腳本,nginx,wireshark的腳本,當你把他的源碼下下來編譯后,你會發現解釋器居然不到200k,這是多么地變態?。?bin/sh都要1M,MacOS平臺),而且能和C語言非常好的互動。我很好奇得瀏覽了一下Lua解釋器的源…

    Linux干貨 2016-08-15
  • 用戶、組、權限和修改

    用戶、組和權限     普通用戶 1–65535     系統用戶  系統已經已經存在專門用來對系統服務或者系統資源進行管理的               1…

    Linux干貨 2017-04-04
  • N26-第六周作業

    vim編輯器的使用 編輯模式:默認模式編輯模式–>輸入模式;i:insert,在光標所在處輸入;a:append,在光標所在處后方輸入o:在光標所在處下方打開的一個新行;光標處在行首;I:在光標所在行的行首輸入A:在光標所在處的行尾輸入;O:在光標所在處的上方打開一個新行; 輸入模式–>編輯模式ESC 編輯模式&#8211…

    Linux干貨 2017-03-13
  • vim編輯器及shell基礎

    1、復制/etc/rc.d/rc.sysint文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#cp /etc/rc.d/rc.sysint /tmpvim /tmp/rc.sysint:%s@^[[:space:]]\+@#&@g 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/…

    Linux干貨 2017-12-08
欧美性久久久久