1. 程式人生 > >Linux運維工程師-面試題總結

Linux運維工程師-面試題總結

1.linux 如何掛在 windows 下的共享目錄

mount.cifs //192.168.1.3/server /mnt/server -o user=administrator,pass=123456

linux 下的 server 需要自己手動建一個  後面的 user 與 pass 是 windows 主機的賬號和密碼 注意空格 和逗號

2.檢視 http 的併發請求數與其 TCP 連線狀態

      [[email protected] ~]# netstat -n | awk '/^tcp/ {b[$NF]++} END{for(a in b)print a,b[a]}'

還有 ulimit -n 檢視 linux 系統開啟最大的檔案描述符,這裡預設 1024,不修改這裡 web 伺服器修改再大也沒用。若要用就修改有幾個辦法,這裡說其中一個:

修改/etc/security/limits.conf

Shell
12*soft nofile10240*hard nofile10240

重啟後生效

3.用 tcpdump 嗅探 80 埠的訪問看看誰最高

tcpdump -i eth0 -tnn dst port 80 -c 1000

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -5 

4.檢視/var/log 目錄下檔案數

ls /var/log/ -lR| grep "^-" |wc -l

5.檢視當前系統每個 IP 的連線數

netstat -antup | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn

6.shell 下 32 位隨機密碼生成

cat /dev/urandom | head -1 | md5sum | head -c 32 >> /pass

將生成的 32 位隨機數 儲存到/pass 檔案裡了

7.統計出 apache 的 access_log 中訪問量最多的 5 個 IP

      cat access_log | awk  '{print $1}' | sort | uniq -c | sort -n -r | head -5

8.在 1-39 內取隨機數

      echo $[RANDOM%39+1]

9.Linux 系統的開機啟動順序

載入 BIOS–>讀取 MBR–>Boot Loader–>載入核心–>使用者層 init 一句 inittab 檔案來設定系統執行的等級(一般 3 或者 5,3 是多使用者命令列,5 是介面)–>init 程序執行 rc.syninit–>啟動核心模組–>執行不同級別執行的指令碼程式–>執行/etc/rc.d/rc.local(本地執行服務)–>執行/bin/login,就可以登入了。

10.符號連結與硬連結的區別

我們可以把符號連結,也就是軟連線 當做是 windows 系統裡的 快捷方式。

硬連結 就好像是 又複製了一份.

ln 3.txt 4.txt   這是硬連結,相當於複製,不可以跨分割槽,但修改 3,4 會跟著變,若刪除 3,4 不受任何影響。

ln -s 3.txt 4.txt  這是軟連線,相當於快捷方式。修改 4,3 也會跟著變,若刪除 4,3 就壞掉了。不可以用了。

11.顯示/etc/inittab 中以#開頭,且後面跟了一個或者多個空白字元,而後又跟了任意非空白字元的行

grep "^# \{1,\}[^ ]" /etc/inittab 

12.顯示/etc/inittab 中包含了:一個數字:(即兩個冒號中間一個數字)的行

grep "\:[0-9]\{1\}\:" /etc/inittab

13.怎麼把指令碼新增到系統服務裡,即用 service 來呼叫

在腳本里加入

Shell
123#!/bin/bash# chkconfig: 345 85 15# description: httpd

然後儲存

chkconfig httpd –add  建立系統服務

現在就可以使用 service 來 start or restart

14.寫一個指令碼,實現批量新增 20 個使用者,使用者名稱為 user01-20,密碼為 user 後面跟 5 個隨機字元

Shell
123456#!/bin/bash#description: useraddforiin`seq-f"%02g"120`;douseradd user$iecho"user$i:`echo $RANDOM|md5sum|cut -c 1-5`"|passwdstdinuser$i>/dev/null2>&1done

15.寫一個指令碼,實現判斷 192.168.1.0/24 網路裡,當前線上的 IP 有哪些,能 ping 通則認為線上

Shell
12345678910111213#!/bin/bashforipin`seq1255`do{ping-c1192.168.1.$ip>/dev/null2>&1if[$?-eq0];thenecho192.168.1.$ipUPelseecho192.168.1.$ipDOWNfi}&donewait

16.寫一個指令碼,判斷一個指定的指令碼是否是語法錯誤;如果有錯誤,則提醒使用者鍵入 Q 或者 q 無視錯誤並退出其它任何鍵可以通過 vim 開啟這個指定的指令碼

Shell
1234567891011121314151617181920212223[root@localhost  tmp]# cat checksh.sh#!/bin/bashread-p"please input check script-> "fileif[-f$file];thensh-n