百度 Linux 運維工程師面試真題

liu4356發表於2024-03-15

百度 Linux 運維工程師面試真題

百度面了好久了,兩個月了,估計都快成餿面了,一跟麵條在走邊邊一不小心掉進了大海,於是

就有了湯麵_經歷非技術總結就兩句話,幸運的是在朋友的幫助下順利透過筆試,還認識了

一幫 super 牛 B 的人,不幸的是最終還是由於主觀客觀擦肩而過~~

我投的是 linux 運維,那個時候 sed,awk 根本不會(不會這兩個就知道我指令碼水平),就知道一

些 basic command! samba,dns,svn 也是半解,telnet,vnc 還好點.再次鄙視下自己.還好暑

假狂補了補.廢話了那麼多,進正題吧~~,估計沒人願意聽我在這裡家常!

上面的各種服務,blog 裡都有_,下面的題目彙總了我自己的和一些朋友的_

1.基礎常見內容

a.apache 虛擬主機設定

這個我以前的日誌已寫了,這裡就不 say 了~~~其實也 easy 現在覺得

b.假設 Apache 產生的日誌檔名為 access_log,在 apache 正在執行時,執行命令 mv

access_log access_log.bak,執行完後,請問新的 apache 的日誌會列印到哪裡?

新的日誌會在 access_log.bak 中,因為 apache 啟動時會找 access_log 檔案,隨時準備向

檔案中加入日誌資訊,雖然此時檔案被改名,但是由於服務正在執行,因為它的 inode 節點的

位置沒有變,程式開啟的 fd 仍然會指向原來那個 inode

不會因為檔名的改變而改變.apache 會繼續向已改名的檔案中追加日誌,但是若重啟

apache 服務,系統會檢查 access_log 檔案是否存在,若不存在則建立.

2.在 Shell 環境下,如何檢視遠端 Linux 系統執行了多少時間?

uptime | awk '{print $3}'

3.處理以下檔案內容,將域名取出並進行計數排序,

如處理: http://www.baidu.com/more/

http://www.baidu.com/guding/more.html

http://www.baidu.com/events/20060105/photomore.html

http://hi.baidu.com/browse/

http://www.sina.com.cn/head/www20021123am.shtml

http://www.sina.com.cn/head/www20041223am.shtml

得到如下結果:

域名的出現的次數 域名

3 www.baidu.com

2 www.sina.com.cn

1 hi.baidu.co 百度總喜歡這種題目,我上篇日誌的 site inurl 也是,這個是統計域名的,還有一

個說是統計檔名的,就是後面的 index 沒有的就直接為空,這個用 shell 怎麼實現還在思考

中,想出來了再寫

cat file | sed -e ' s/http:////' -e ' s//.*//' | uniq -c | sort -rn

awk -F/ '{print $3}' file |uniq -c | sort -r |awk '{print $1"\t",$2}'

4.如果得到隨機的字串,長度和字串中出現的字元表可定義,並將字串倒序顯示,

如把 0123456789 作為基準的字串字元表,產生一個 6 位的字串 642031,列印出的字串為

130246,可使用 bash/perl/php/c 任意一種.

awk -v count=6 ‘BEGIN

{srand();str=”0123456789″;len=length(str);for(i=count;i>0;i–)

marry[i]=substr(str,int(rand()*len),1);for(i=count;i>0;i–)

printf(“%c”,marry[i]);printf(“\n”);for(i=0;i<=count;i++)

printf(“%c”,marry[i]);printf(“\n”)}’

5.如何檢視當前 Linux 系統的狀態,如 CPU 使用,記憶體使用,負載情況等.

當時問到這個的時候我超級自信,可是你知道/proc 目錄下的那些數字目錄代表什麼嗎??教

訓阿!!!(ps:不懂的自己 google_)個人的小教訓

Linux 系統中/proc 是個偽檔案目錄,不佔用系統空間,及時的反應出記憶體現在使用的程序情

況.其中許多檔案都儲存系統執行狀態和相關資訊對於/proc 中檔案可使用檔案檢視命令瀏

覽其內容,檔案中包含系統特定資訊:

cpuinfo 主機 CPU 資訊

filesystems 檔案系統資訊

meninfo 主機記憶體資訊

version Linux 記憶體版本資訊

diskstatus 磁碟負載情況

另外 top 命令可以動態的顯示當前系統程序使用者的使用情況,而且是動態的顯示出來,尤其

是在該命令顯示出來的對上方對系統的情況進行彙總.

free 命令呢可以檢視真實使用的記憶體 一般用 free -m

使用 ps aux 可以檢視詳細的每個程序的使用狀況

dmesg 也是常用來檢視系統效能的命令

告訴我那些是程序後又問如何檢視一個程序所使用的檔案控制代碼?

/proc/程序號/fd/的個數就行了

6.檢視 apache 程序數

個人在 ubuntu 下測試成功的是

ps aux | grep “apache2” | grep -v “apache2” | wc -l

個別的 command,與 OS 有關!!!

下面的是別人滴_

##########################

1、/proc/sys 子目錄的作用

該子目錄的作用是報告各種不同的核心引數,並讓您能互動地更改其中的某些。與 /proc

中所有其他檔案不同,該目錄中的某些檔案可以寫入,不過這僅針對 root,這個 google 下

多的是 oh no,please baidu,baidu 更懂中文~~

2、將一個文字的奇數行和偶數行合併,第 2 行和第 3 行合併

a.將所有奇數行和偶數行合併,就是去奇數行的換行符了哦

sed ‘$!N;s/\n/ /g’ test

b.就是去第二行的了哦

sed -n -e 2p -e 3p test | sed ‘$!N;s/\n/ /g’ test

3、read 命令 2 秒後自動退出

read -t 2

4.下面的這兩個我沒有 DIY 過,沒環境阿,就自己一臺筆記本

自動 ftp 上傳

#!/bin/sh

ftp -n<<END_FTP

open 192.168.1.4

user codfei duibuqi //使用者名稱 codfei 密碼 duibuqi

binary

prompt off //關閉提示

mput test //上傳 test

close

bye

END_FTP

自動 ssh 登陸 從 A 到 B 然後再到 c

#!/usr/bin/expect -f

set timeout 30

spawn ssh codfei@B

expect “password:”

send “pppppp\r”

expect “]*”

send “ssh codfei@C\r”

expect “password:”

send “pppppp\r”

interact

7、sed awk grep 哪個最好

我答的是 哪個掌握的精通,都很好,但是還是問我哪個最好,我只能說 awk 了,對於行操

作和列操作都可以操作的很好。

8、grep -E -P 是什麼意思

我說的是-E, –extended-regexp 採用規則表示式去解釋樣式。 -P perl 的

9、還問了我對運維這個工作的理解,和應該具備的素質。

…………

【特別說明】

面試真題屬於應試者記憶問題的再現,會與真實面試情況存在差別,建議你參考

多家企業的 Linux 運維面試題目,增加透過率。

相關文章