面試總結二

来源:http://www.cnblogs.com/0zcl/archive/2017/06/07/6953018.html
-Advertisement-
Play Games

問題: 只記得上面8個問題。 第一個問題很簡單吧,肯定是參數 -i 啦 第二個問題也很簡單,404表示請求資源不存在,403表示服務端收到請求,但是拒絕提供服務,503表示服務端當前不能處理客戶端的請求,一段時間後可能恢復正常。 第三個問題也很簡單,要回到首行,按小寫的 “gg”,要回到未行,按 " ...


問題:

  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伺服器地址)。在網路的屬性里進行,(單擊“開始→控制面板”,雙擊打開“網路連接”,右鍵單擊“本地連接”,選擇“屬性”,選中“Internet協議(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, 一問到也不知道怎麼回答,尷尬~_~

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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 公司最近需要往智能家居方面發展,需要用到UDP協議傳輸數據,在網上找到了一些資料,但是發現傳輸中文的時候有亂碼的現象,經過我多番搗鼓,終於解決了這個問題,下麵貼上關鍵代碼 客戶端: 服務端: ...
  • 前段時間擼代碼猥瑣發育的時候,設計師老王給了張截圖某寶APP上一個生成長圖分享的功能,正好公司有這個需求,於是在立馬開始操練起來!在萬能的度娘上搜集整理資料後發現很多文章介紹的方案對WKWebView不適用,iOS8.0後的系統基本使用WKWebView載入H5,生成截圖是往往後面一段很大的空白,這 ...
  • 1.安裝adb offline解決辦法: 原因就是android 4.2以上的版本過高,sdk的adb驅動不匹配,需要升級。我原本的adb是1.0.29,升級為1.0.31,問題就解決了。 2.安裝sdk 3.啟動monitor.bat 4.會輸出所有log 5.建立過濾器filter logcat ...
  • 又是一年的WWDC,激情過後還是該總結一下本次開發者大會的主要關註點。本次的開發者大會幾乎涵蓋了Apple的所有產品,包括軟體及硬體的更新,相比去年同期的開發者大會而言已然展示了Apple極大的誠意了。 接下來我們就來看看WWDC2017都發生了些什麼。整個大會分成6個Part: Part1帶來的是 ...
  • 1.什麼是APK APK,即Android Package,Android安裝包。不同平臺的安裝文件格式都不同,類似於Windows的安裝包是二進位的exe格式,Mac的安裝包是dmg格式。APK可以再Android上執行安裝,APK的本質是一個Zip壓縮包,只是尾碼被修改為apk,其中打包了源代碼 ...
  • 代碼: -(void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; //移除通知 [[NSNotificationCenter defaultCenter] removeObserver:self nam ...
  • 磁碟配額 1 啟用磁碟配額 首先創建新的分區 /dev/sd5,並創建文件系統。 [root@local ~]# mkfs.ext4 /dev/sda5 由於xfs 不磁碟配額能成功,這裡使用ext4. 然後把/dev/sda5分區掛載到 /home [root@local ~]# mount /d ...
  • 不同的Linux之間copy文件常用有3種方法: 第一種就是ftp,也就是其中一臺Linux安裝ftpServer,這樣可以另外一臺使用ftp的client程式來進行文件的copy。 第二種方法就是採用samba服務,類似Windows文件copy 的方式來操作,比較簡潔方便。 第三種就是利用scp ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...