首頁 >運維 >linux運維 >分享一個面試的實例教程

分享一個面試的實例教程

PHP中文网
PHP中文网原創
2017-06-21 11:16:491957瀏覽

問題:

  1. awk,grep,sed 忽略大小寫用哪個參數?

  2. ##403狀態碼表示什麼?

  3. vim如何跳到最後一行,第一行?

  4. #靜態頁面與動態頁面的差異?

  5. #Linux某目錄下有100個目錄,如何找出最大的那個目錄?

  6. 瀏覽器qq能上,但訪問不了網頁,如何排查?

  7. ftp協定的連接埠號碼是多少?

  8. TCP三次握手,ack,seq寫出來?

 

只記得上面8個問題。

第一個問題很簡單吧,一定是參數-i 啦

第二個問題也很簡單,404表示請求資源不存在,403表示服務端收到請求,但是拒絕提供服務,503表示服務端目前不能處理客戶端的請求,一段時間後可能恢復正常。

第三個問題也很簡單,要回到首行,按小寫的「gg」,要回到未行,按 "Shift + g"

#第四個問題是動態網頁與靜態網頁的差異。當時聽到這個問題心裡是很高興的,回答"靜態網頁是用html與css的佈局,網頁的靜態的;動態網頁多加了js,jquery,ajax,可以與後台進行交互,也可以有輪播圖的效果"。這種回答必然大錯!! 老鐵啊,紮心了!!

可以看下這位大神的博客: 靜態頁面、動態頁面和偽靜態頁面的區別

總結:

靜態頁面:存取速度快,不需要從資料庫裡面提取數據,不會對伺服器產生壓力。但是,靜態頁面是儲存在HTML裡面,會佔用較多的伺服器空間,每次新增內容都會產生新的html頁面。如果不是專業人士維護比較麻煩。

動態頁面:使用伺服器的空間小。數據是從資料庫裡面調出來的,如果需要修改頁面某些數據,直接更改資料庫,那麼所有的動態網頁,就會自動更新。但是,用戶存取速度較慢。

為什麼會造訪動態頁面較慢呢?這個問題要從動態頁面的存取機制說起了,其實我們的伺服器上面有一個模版引擎(進行模版渲染)。當使用者造訪的時候,這個模版引擎就會把動態頁面翻譯為靜態頁面,這樣大家就能夠在瀏覽器裡面查看源碼(模版引擎渲染之後的源碼)。除訪問速度較慢以外,動態頁面的資料是從資料庫裡面呼叫過來的。如果造訪的人數較多,資料庫的壓力會非常大。過現在的動態程式多數都使用了快取技術。但是整體來講,動態頁面對於伺服器的壓力比較大一些。整體來講,動態頁面對於伺服器的壓力比較大一些。同時動態頁面的網站一般對於伺服器的要求比較高一些,同時造訪的人越多也會造成伺服器的壓力越大。

當然,也可以這麼說: 不同的使用者造訪到的靜態頁面是相同的;但造訪到的動態頁面可以是不相同的。

第五個問題

在你想查的目录下 执行这个 du -sh * | sort -h 会把占用空间最大的文件列在最后 放在开头的话 du -sh * | sort -rh

第六個問題

網路設定和DNS伺服器的問題
這個問題有很多種可能,請參考: 為什麼電腦能上QQ卻打不開網站的解決方法

下面我從DNS方面入手,講下可能出現的問題及如何解決。能上QQ,表示PC是可以訪問外網的,但是打不開網站,就可能DNS問題,你可以在cmd下ping www.baidu.com再ping百度的IP位址。如果此時前者ping不通而後者可ping通。說明DNS出問題了。以下是從網路上找來的相關解決方法:

  1. 有些網友出於某些方面考慮,在瀏覽器裡設定了代理伺服器(控制面板- -Internet選項—連接—區域網路設定—為LAN使用代理伺服器),設定代理伺服器是不影響QQ聯網的,因為QQ用的是4000端口,而訪問互聯網使用的是80或8080端口。這就是很多的筒子們不明白為什麼QQ會上,而網頁不能打開的原因。而代理伺服器一般不是很穩定,有時侯能上,有時候不能上。如果有這樣設定的,請把代理取消就可以了。

  2. 當IE無法瀏覽網頁時,可先嘗試用IP位址來訪問,如果可以訪問,那麼應該是DNS的問題造成DNS的問題可能是連網時取得DNS出錯或DNS伺服器本身問題#,這時你可以手動指定DNS服務(位址可以是你當地ISP提供的DNS伺服器位址,也可以用其它地方可正常使用DNS伺服器位址)。在網路的屬性裡進行,(按一下“開始→控制面板”,雙擊開啟“網路連線”,右鍵點選“本機連線”,選擇“屬性”,選取“網路協定(TCP/IP)”,按一下“屬性”,在“使用下面的DNS伺服器位址”中看是不是正確的網路)。

  3. 不同的ISP有不同的DNS位址。有時候是路由器或網路卡的問題,無法與ISP的DNS服務連接,這種情況的話,可把路由器關一會兒再開,或重新設定路由器。 若還不能解決問題,可以更新網路卡驅動程式和換塊網路卡試試。

  4. 還有一種可能,是本機DNS快取出現了問題。為了提高網站訪問速度,系統會自動將已經訪問過並獲取IP地址的網站存入本地的DNS緩存裡,一旦再對這個網站進行訪問,則不再通過DNS服務器而直接從本地DNS緩存取出該網站的IP位址進行存取。所以,如果本地DNS快取出現了問題,會導致網站無法存取。可以在cmd下執行ipconfig /flushdns來重建本機DNS快取。

 

#第七個問題問: ftp協定的連接埠號碼是多少?

我當時想不起ftp協定連接埠號碼是多少,就答ssh是22,telnet是23。然後面試官說是20,21;還說主動與被動。我真是一臉懵逼…

回來後查了網路上的資料,感覺這篇部落格寫得最好了: FTP主動模式和被動模式的差異

基本:

  FTP只透過TCP連接,沒有用於FTP的UDP元件。 FTP不同於其他服務的是它使用了兩個連接埠, 一個資料連接埠和一個命令連接埠(或稱為控制連接埠)。通常21端口是命令端口,20端口是資料端口。當混入主動/被動模式的概念時,資料連接埠就有可能不是20了。

主動模式FTP:

先看圖片:

##

主動模式下,FTP客戶端從任意的非特殊的連接埠(N > 1023)連入到FTP伺服器的命令連接埠--21連接埠。然後客戶端在N+1(N+1 >= 1024)連接埠監聽,並且透過N+1(N+1 >= 1024)連接埠發送命令給FTP伺服器。伺服器會反過來連接用戶本地指定的資料端口,例如20端口。

以伺服器端防火牆為立足點,要支援主動模式FTP需要開啟下列互動中所使用的連接埠:

  • FTP伺服器命令(21)連接埠接受客戶端任意連接埠(客戶端初始連線)

  • FTP伺服器指令(21)連接埠到客戶端連接埠(>1023)(伺服器回應客戶端命令)

  • FTP伺服器資料(20)連接埠到客戶端連接埠(>1023)(伺服器初始化資料連接到客戶端資料連接埠)

  • #FTP伺服器資料(20)連接埠接受客戶端連接埠(>1023)(客戶端發送ACK包到伺服器的資料連接埠)

在第1步驟中,客戶端的命令連接埠與FTP伺服器的命令連接埠建立連接,並發送命令「PORT 1027」。然後在步驟2中,FTP伺服器給客戶端的命令連接埠回傳一個"ACK"。在步驟3中,FTP伺服器發起一個從它自己的資料連接埠(20)到客戶端先前指定的資料連接埠(1027)的連接,最後客戶端在第4步中給伺服器端傳回一個"ACK"。

  主動方式FTP的主要問題其實在於客戶端。 FTP的客戶端並沒有實際建立一個到伺服器資料連接埠的連接,它只是簡單的告訴伺服器自己監聽的連接埠號,伺服器再回來連接客戶端這個指定的連接埠。對於客戶端的防火牆來說,這是從外部系統建立到內部客戶端的連接,這是通常會被阻塞的

 

被動模式FTP

為了解決伺服器發起到客戶的連線的問題,人們開發了一種不同的FTP連線方式。這就是所謂的被動方式,或稱為PASV,當客戶端通知伺服器它處於被動模式時才啟用。

  在被動方式FTP中,命令連線和資料連線都由客戶端,這樣就可以解決從伺服器到客戶端的資料連接埠的入方向連線被防火牆過濾掉的問題。當開啟一個FTP連線時,用戶端會開啟兩個任意的非特權本機連接埠(N >=1024和N+1)。第一個端口連接伺服器的21端口,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的資料端口,而是提交PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權連接埠(P >=1024),並發送PORT P命令給客戶端。然後客戶端發起從本機埠N+1到伺服器的連接埠P的連線用來傳送資料。

對於伺服器端的防火牆來說,必須允許下面的通訊才能支援被動方式的FTP:

  1. FTP伺服器指令( 21)連接埠接受客戶端任意埠(客戶端初始連線)

  2. FTP伺服器指令(21)連接埠到客戶端連接埠(>1023)(伺服器回應客戶端指令)

  3. FTP伺服器資料連接埠(>1023)接受客戶端連接埠(>1023)(用戶端初始化資料連接至伺服器指定的任意連接埠)

  4. #FTP伺服器資料埠(>1023)到用戶端連接埠(>1023)(伺服器傳送ACK回應和資料到客戶端的資料連接埠)

 

在步驟1中,客戶端的命令連接埠與伺服器的命令連接埠建立連接,並發送命令「PASV」。然後在步驟2中,伺服器返回命令"PORT 2024",告訴客戶端(伺服器)用哪個連接埠偵聽資料連線。在步驟3中,客戶端初始化一個從自己的資料連接埠到伺服器端指定的資料連接埠的資料連線。最後伺服器在第4 步驟中給予客戶端的資料連接埠回傳一個"ACK"回應。

  被動方式的FTP解決了客戶端的許多問題,但同時也為伺服器端帶來了更多的問題。 最大的問題是需要允許從任意遠端終端到伺服器高位元連接埠的連線。幸運的是,許多FTP守護程序,包括流行的WU-FTPD允許管理員指定FTP伺服器使用的連接埠範圍。詳細內容參考附錄1。 

  第二個問題是客戶端有的支援被動模式,有的不支援被動模式,必須考慮如何能支援這些客戶端,以及為他們提供解決方案。例如,Solaris提供的FTP命令列工具不支援被動模式,需要第三方的FTP客戶端,例如ncftp。

  隨著WWW的廣泛流行,許多人習慣用web瀏覽器作為FTP客戶端。大多數瀏覽器只在存取ftp://這樣的URL時才支援被動模式。這到底是好還是壞取決於伺服器和防火牆的設定。

 

以下是主動與被動FTP優缺點的簡要總結: 

  主動FTP對FTP伺服器的管理有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機連接埠建立連接,而這個連接埠很有可能會被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。 因為客戶端要與伺服器端建立兩個連接,其中一個連到一個高位隨機端口,而這個端口很有可能被伺服器端的防火牆阻塞掉

  幸運的是,有折衷的辦法。既然FTP伺服器的管理員需要他們的伺服器有最多的客戶連接,那麼必須要支援被動FTP。我們可以透過為FTP伺服器指定一個有限的連接埠範圍來減少伺服器高位元埠的暴露。這樣,不在這個範圍的任何連接埠都會被伺服器的防火牆阻塞。雖然這並沒有消除所有針對伺服器的危險,但它大大減少了危險。 。

 

 

軟連結與硬連結也有問到。例如問區別阿,當時我打了一個比方,軟連線就像windows下的快鍵方式。刪除軟鏈接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接,就像windows文件被刪除了,那它的快鍵方式也沒廢了。

硬連結檔案就相當於檔案的另一個入口。檔案是存在磁碟中的block區塊的,透過索引結點指向block區塊來進行硬連結。文件至少會有一個硬鏈接,就是它本身。如果一個檔案的所有硬連結檔案都被沒有,那就表示該檔案被刪除了。

so, 當時有問到這麼一個問題,一個目錄佔用了很多空間。如何把它刪除?? 要刪除的話肯定要先備份,但是目錄太大,備份也需佔用很多的磁碟空間。所以備份不明智的。正確的做法是先給這個目錄建立一個額外的硬鏈接,再刪除該目錄。如果一段時間後,系統正常,刪除的內容也沒有對一些業務產生影響。這時才可以刪除先前建立的硬鏈接,此時該目錄才真正被刪除。

 

這次是去面試維運實習生的。學Linux有一個多月了,中間除去二週去做專案。很多Linux的知識沒有常用,so, 一問到也不知道怎麼回答,尷尬~_~

很多事情,不試一下,都不知道自己不行,哈哈哈。最後來個段子:

 

以上是分享一個面試的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn