1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。
TCP三次握手:
客戶端向服務器發送SYN包,客戶端進入syn_SEND狀態
服務端收到客戶端的發送的包返回ACK+SYN包,服務器端進入SYN_RECV狀態
客戶端收到服務器端返回的包再發ACK包,客戶端進入ESTABLISHED狀態,服務器收到包也進入ESTABLISH
ED狀態
客戶端狀態:SYN_SENDE STABLISHED
服務器端狀態:SYN_RCVE ESTABLISHED
TCP四次揮手
客戶端發送FIN包詢問服務器端是否能斷開,客戶端進入FIN_WAIT_1狀態
服務器端收到客戶端發送的包并返回ACK包,服務器端進入CLOSE_WAIT狀態
服務器端準備好斷開后,發送FIN包給客戶端,服務器端進入LAST_ACK狀態
客戶端收到服務器端發送的包后返回ACK包,客戶端進入TIME_WAIT狀態,服務器端收到包后進入CLOSED狀態
客戶端狀態:FI
> N_WAIT_1 FIN_WAIT_2 TIME_WAIT
服務器端狀態:CLOSE_WAIT LAST_ACKC LOSED
(網上找的,還不是很懂)
2、說說進程和線程的區別
進程是并發執行的程序在執行過程中分配和管理資源的。
線程是進程組成之一,線程的改變只代表了cpu執行過程的改變,進程所資源是沒有變化的
3、查詢file.txt以abc結尾的行
grep "abc$" file.txt
4、刪除file.txt文件中的空行
sed -i '/^$/d' file.txt
5、打印file.txt文件中的第10行
head -10 file.txt | tail -1
6、對MySQL數據庫test進行備份和恢復
備份:mysqldup -uroot -pPassword -hHostname test >/root/backup/test.sql
恢復:mysql -uroot -pPassword -hHostname </root/backup/test.sql
網上找的
7、用netstat統計系統當前tcp連接的各種狀態的連接數。
netstat -nat| awk '{print $6}'| sort | uniq -c
8、linux下如何將GBK編碼格式的test_gbk.txt文件轉換成UTF-8編碼格式,轉化后的文件名為 test_utf8.txt
iconv -f GBK -t UTF-8 test_gbk.txt -o test_utf8.txt
網上找的
9、說說你用過哪些監控軟件,并簡述其原理及適用場景
#zabbix
agent方式監控:在被監控端安裝agent程序,通過zabbix自己的協議主動或被動發送數據給server端或代理的proxy端,
適用于服務器、工作站的監控,不適用于交換機、路由器、防火墻的監控。
SNMP方式監控:通過SNMP協議進行監控,需要開起并配置SNMP服務,適用于網絡設備(交換機、路由器、防火墻)的監控,
通信協議為UDP,所以不適用于服務器、工作站的監控。
10、寫出查看linux系統性能的命令,如cpu、內存、流量、io等
top htop free
11、說說nginx的upstream支持的分配策略,并簡述其原理
輪詢:默認的方式,按時間順序依次分配
weight:根據服務器權重進行輪詢分配
ip_hash:按ip的hash值進行分配,可以解決session保持
url_hash:按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效
fair:按服務器響應時長進行分配
網上找的
12、crontab定時:在11月份內,每天的早上6點到12點中,每隔2小時執行一次/usr/bin/httpd.sh 怎么實現
0 6-12/2 * 11 * /usr/bin/httpd.sh
13、iptables禁止 ip 10.10.10.1 訪問本地80端口
iptables -t filter -I INPUT -p tcp -s 10.10.10.1 –dport 80 -j DROP
網上找的
14、找出在文件a中但不在文件b中的內容,用命令后編寫腳本實現
#!/bin/bash
diff /root/a /root/b | grep "<" | awk '$1=" "'
網上找的
15、編寫shell循環創建100個用戶,用戶名格式user_[0~99]
#!/bin/bash
for i in $(seq 1 100);do
if ! id user_$i &>/dev/null || useradd user_$i
done
原創文章,作者:N19_king,如若轉載,請注明出處:http://www.www58058.com/18182