1. 程式人生 > >Linux常用面試題

Linux常用面試題

運維

1.面試技巧:

  1. 自我介紹:多準備,背下來。要抑揚頓挫,自我介紹之後不要停留,直接切入在公司的工作情況,講解架構。把工作中的問題說出來,以及解決方案。

  2. 比如面試的時候別人問大數據,雲計算等,這屬於開發。可以回答說接觸不太多,但是這個東西,咱公司有機會我願意去研究去花時間學習。

  3. 盡量拿到面試官的聯系方式,回去後將面試的題目,找到標準答案,排好版甚至畫好圖,給面試官發回去!

  4. 面對面不要口說,適當的時候要畫圖講解。

  5. 首先穿著要得體,最好標準的職業裝面試,不能隨意穿著;簡單一點就是要讓人一看你,就感覺清爽、能幹、有活力。

  6. 要準備充分,盡量提前15分鐘到面試公司,提前翻閱資料了解公司的簡單背景及相關文化。

  7. 保持微笑,不要太古板,要隨和,保持心態放松,不要搶話搶答;要懂禮貌,有時候細節決定成敗。

  8. 在回答問題上要簡單明了,不要闡述一個問題繞來繞去,把自己都繞迷糊了;要說到恰到好處。該回答的回答,不該說盡量別說,做到有的放矢。

  9. 要保持謙遜,遇到不會的題目,不知道就是不知道,不要非懂裝懂;

10.面試通常開始會讓你做自我介紹,自我介紹說些什麽?多長合適?

一般自我介紹,就介紹自己叫什麽名字,畢業時間學校,以及之前的工作經驗,自己比較熟練的技能和自己的性格和優點等等;介紹完畢,最後說聲介紹完畢,謝謝。

11.面試要有自信,不要低著頭,面試是雙向的,你選擇公司,公司也在選擇你。機會是非常的多的,關鍵是看你自己是否能把握住,是否之前已經準備好。

12.面試的心態一定要保持平靜,不要因為一次面試不上,就覺得自己到處都是缺點,要總結自己上次面試的不足,然後下一次改變掉,相信堅持不懈一定能找到滿意的工作。

13.最後總結一點,做什麽事情自信很重要,相信自己可以做到,然後勇敢的去做,結果一定讓你倍感驚喜。

2.nginx反向代理的幾種模式?

nginx反向代理一共以下5種模式,前3種使用的比較多:

1)輪詢:每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器 down 掉,能自動剔除。

2)權重:指定輪詢幾率,weight和訪問比率成正比,用於後端服務器性能不均的情況。

3)ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題。

4)fair(第三方):按後端服務器響應時間來分配,時間短的優先分配。

5)url_hash(第三方):按訪問url的hash結果來分配請求,使同樣的url定向到同一個後端服務器,後端服務器為緩存時比較有效。

3.MySQL主從有哪幾種模式?

1)基於SQL語句的復制(statement-based replication, SBR)。

2)基於行的復制(row-based replication, RBR)。

3)混合模式復制(mixed-based replication, MBR)。

4.說說tomcat調優?

5.有哪些原因會導致mysql主從同步出問題?該如何解決?

原因:

1.主數據庫binlog日誌未開啟或binlog日誌更新未開啟。

2.主從數據庫結構不一致。

3.防火墻沒有開放端口。

5.對應的IP地址寫錯了。

6.mysql數據庫版本不一致。

解決辦法:

1.強制同步。

2.如果數據不一致,比較少的時候可以插入數據使一致。

3.如果數據庫比較小,可以將數據庫導出並重新導入一次。

6.說說mysql的備份?

1)按照數據影響分:

熱備 xtrabackup,只能備份InnoDB和XtraDB兩種引擎表

冷備

溫備

2)按照備份後的文件內容分:

邏輯備份 mysqldump,數據量大不建議使用,備份後內容可讀,一般是文本文件,裏面是SQL語句或表的實際數據

裸文件備份 拷貝數據庫物理文件,mysqlhotcopy,最快,但是只能是myisam引擎.本質是使用鎖表語句後再使用cp或scp拷貝數據庫.適合大數據

3)按照備份數據庫的內容來分:

完全備份

增量備份 xtrabackup,只能備份InnoDB和XtraDB兩種引擎表

日誌備份 二進制日誌的備份,主從復制

7.查看http的並發請求數及TCP連接狀態?

[root@Bob10 ~]# netstat -ap | grep httpd | awk ‘{printf $6}‘ #查看鏈接狀態

[root@Bob10 ~]# netstat -an |grep ESTABLISH | grep "192.168.1.10:80" #查看並發請求數

8.統計出Apache的access_log中訪問量最多的5個IP?

cat /var/log/httpd/access_log | awk ‘{print $1}‘ | uniq -c |sort -n|tail -5

9.Linux開機啟動順序?

1)加載BIOS: 根據設定取得第一個可開機引導設置如:光驅,硬盤,網絡,USB。

2)MBR引導: 通過主引導扇區讀取主引導程序、硬盤分區表和和硬盤有效標誌.系統找到BIOS所指定的硬盤的MBR後,就會將其復制到地址所在的物理內存中。

3)讀取grub: 讀取內存中的grub配置信息,並依照此配置信息來啟動不同的操作系統。

4)加載內核: 系統將解壓後的內核放置在內存之中,並調用start_kernel()函數來啟動一系列的初始化函數並初始化各種設備,完成Linux核心環境的建立。

5)讀取inittab: 運行的程序便是/sbin/init,該文件會讀取/etc/inittab文件,並依據此文件來進行初始化工作.inittab最主要的就是確定運行等級。

6)執行rc.sysinit: 就是說這是來準備軟件執行的作業環境的。

7)執行rcN.d: 根據運行級別的不同,系統會運行/etc/rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工作和啟動相應的服務。

8)執行rc.local: rc.local就是在一切初始化工作後,Linux留給用戶進行個性化的地方。你可以把你想設置和啟動的東西放到這裏。

9)執行/bin/login 執行後進入登錄狀態。

10.寫一個腳本,實現判斷192.168.1.0/24網絡中當前在線的IP有哪些,能ping通則認為在線?

[root@Bob10 ~]# vim /root/ping.sh

#!/bin/bash

i=0

while [ $i -le 255 ]

do

    ping -c 3 192.168.1.$i &> /dev/null

    if [ $? == 0 ]

    then

            echo "192.168.1.$i"

    fi

    ((i++))

done

[root@Bob10 ~]# chmod +x /root/ping.sh

11.寫一個腳本,要求從本地的/data目錄下的所有文件備份到遠程服務器的/data目錄下,備份完成後發送郵件到backup.meihua.info,郵件內容要顯示備份數據的大小,並且每天淩晨1點開始執行?

[root@Bob10 ~]# vim /root/back.expect

#!/usr/bin/expect

set ip "192.168.1.11"

set passwd 123456

set timeout 30

spawn scp -r /root/data/ $ip:/root/

expect {

    "(yes/no)?" { send "yes\r";exp_continue }

    "password:" { send "$passwd\r";exp_continue }

}

[root@Bob10 ~]# vim /root/back.sh

#!/bin/bash

expect /root/back.expect

if [ $? -eq 0 ]

then

    size=`du -sh /root/data/ | awk ‘{print $1}‘`

    echo "backup success\!the size is $size" | mail -s "backup info" backup.meihua.info

else

    echo "bacukp failed\!" | mail -s "backup info" backup.meihua.info

fi

12.說說MySQL優化?

1.硬件優化:

1)cpu:64位,高主頻,高緩存,高並行處理能力.

2)內存:大內存,高主頻,盡量不要用swap.

3)硬盤:固態,高轉速.

4)網卡:萬兆,光口.

2.磁盤io優化:

1)做raid10

2)磁盤分區:將數據放在獨立的分區上.做主從時,binlog單獨放在一個分區

3.操作系統優化:

1)使用64位系統

2)使用網卡綁定

3)設置TCP連接數限制

4)優化mysql用戶打開文件數限制

5)禁用不必要的服務自啟動

6)可以給數據分區一個單獨的文件系統,一般為xfs(紅帽6需要安裝支持xfs的軟件xfsprogs),在掛載分區時可以考慮啟用noatime.

7)最小化原則:

安裝系統最小化

開啟服務最小化

操作最小化

登錄最小化

權限最小化

4.數據庫設計與規劃:

1)專機專用

2)做主從同步,負載均衡,高可用集群等

3)選擇合適的數據庫引擎.如myiasm適合讀多寫少的表,innodb適合讀少寫多的表.做主從時主使用innodb引擎,從使用myisam引擎

5.my.cnf內的參數優化:

總原則:賦予mysql適當的資源,一般40%給系統,60%-70%給mysql.

1)啟用mysql慢查詢,分析sql語句,找到影響效率的sql:

vim /etc/my.cnf

log-slow-queries=/var/lib/mysql/slow.log

log_query_time=5

2)對查詢進行緩存:

vim /etc/my.cnf

query_cache_size=32m

3)強制限制mysql資源配置,例如:

vim /etc/my.cnf

max_connections=500 #限制最大連接數

wait_timeout=10 sleep #mysqld將終止等待時間(空閑時間)超過10秒的連接

max_connection_error=10 #如果一個主機在連接到服務器時有問題,並重試很多次後放棄,那麽這個主機就會被鎖定,直到執行:mysql> FLUSH HOSTS;

4)表高速緩存:

vim /etc/my.cnf

table_cache=23 #緩存23個表.在 2G 內存以下的機器中的值默認從 256 到 512個

5)關鍵字緩存:

vim /etc/my.cnf

key_buffer=512M #只跑了一個mysql服務.結合所有緩存,mysql整體使用的緩存可以是物理內存的80%

6)關閉dns反查功能:

skip-name-resolve #該選項就能禁用DNS 解析,連接速度會快很多。不過,這樣的話就不能在MySQL 的授權表中使用主機名了而只能用ip 格式。

6.sql語句優化:

1)建表:

表結構合理,不要太大,類型精確.

2)索引:

建立合適的索引.

3)查詢:

減少邏輯運算,精確查詢(不要查詢不需要的數據).

適當的將多個小查詢合並為一個大的查詢.

適當的將某些過於復雜的查詢拆解成多個小查詢,和剛才的相反.

4)事務:

減小事務包的大小.

5)存儲過程:

適當的建立並優化存儲過程

13.軟件包的安裝方式有哪幾種?該如何正確的選用哪種安裝方式?

1.yum安裝:功能性軟件,如openssh

2.源碼編譯:高並發的軟件,例如mysql集群

3.二進制安裝:開發測試的軟件

14.myisam和innodb的區別是什麽?

mysql默認使用的是myisam

1)myiasm不支持事物

2)myisam不支持行鎖表

3)myisam不支持外鍵

4)myisam支持全文索引

5)myisam支持gis數據,如surface等

6)myisam主鍵範圍比innodb小,最小是其1/2

15.如何批量刪除指定的文件夾下以.txt結尾的文件?

find /root/ -name "*.txt" -exec rm -rf {} \;

16.如何篩選指定文件夾下大於10M的文件?

find /root/ -size +10M

17.說說你在公司的主要工作內容以及公司的系統架構?

18.在工作過程中遇到了一些什麽問題?如何排查並解決的?

apache的2種工作方式的區別?

你們原來公司的網站架構是怎樣的?

你對哪一塊比較熟練或者精通?

Squid、varnish等緩存服務器維護過嗎?squid緩存代理的原理是什麽?緩存命中率怎麽查看及清空緩存?

LVS的工作原理是什麽?有哪些算法?

Nginx日常的優化的參數都有哪些?Nginx動靜分離做過嗎?描述簡單的步驟。

Linux內核優化,你都優化哪些參數?

你在維護網站的過程中,曾經遇到過什麽重大的問題?怎麽解決的?

Shell編程熟練嗎?編寫一個自動化備份Mysql數據庫的腳本?

Mysql主從架構的原理是什麽?如果主從不同步,報錯了,怎麽恢復?

如果備份大數據Mysql數據文件?Mysql優化有哪些步驟?

FTP主被動模式的區別是什麽?

Apache兩種工作模式的區別及優化?

Nagios、cacti維護過嗎?平時都監控些什麽?

你們公司的網絡出口帶寬是多少?每天網站的PV、UV是多少?

你覺得Linux運維工程師的職責是什麽?

你為什麽離職,離職的原因是什麽?

密碼忘了該怎麽辦,如何破解?

作為一個系統運維工程師,需要具備哪些技能?

如何備份數據庫?有哪些命令?

nginx有哪些模塊?

如何設置自動備份並刪除10天前備份的數據庫?

如果有50臺主機需要安裝操作系統,該怎麽辦?

如果網站受攻擊了,該如何排查問題,思路是什麽?

Linux如何查看某個端口是否被占用了?

rpm安裝和yum安裝有什麽區別?rpm安裝軟件如何解決依賴?

如果發現Linux系統所有的文件都是只讀的,可能是什麽問題?該如何排查?

-----以上面試題多數為本人的真實面試題,答案均為自己查閱並總結,不正確的地方還望大家多多指出。還有些題目沒整理出答案,大家可以留言回答。不定期更新,哈哈!

Linux常用面試題