共計 16353 個字符,預計需要花費 41 分鐘才能閱讀完成。
本篇內容介紹了“Linux 運維的面試題有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1、什么是運維?什么是游戲運維?
1)運維是指大型組織已經建立好的網絡軟硬件的維護,就是要保證業務的上線與運作的正常,
在他運轉的過程中,對他進行維護,他集合了網絡、系統、數據庫、開發、安全、監控于一身的技術
運維又包括很多種,有 DBA 運維、網站運維、虛擬化運維、監控運維、游戲運維等等
2)游戲運維又有分工,分為開發運維、應用運維(業務運維)和系統運維
開發運維:是給應用運維開發運維工具和運維平臺的
應用運維:是給業務上線、維護和做故障排除的,用開發運維開發出來的工具給業務上線、維護、做故障排查
系統運維:是給應用運維提供業務上的基礎設施,比如:系統、網絡、監控、硬件等等
總結:開發運維和系統運維給應用運維提供了“工具”和“基礎設施”上的支撐
開發運維、應用運維和系統運維他們的工作是環環相扣的
2、在工作中,運維人員經常需要跟運營人員打交道,請問運營人員是做什么工作的?
游戲運營要做的一個事情除了協調工作以外
還需要與各平臺溝通,做好開服的時間、開服數、用戶導量、活動等計劃
3、現在給你三百臺服務器,你怎么對他們進行管理?
管理 3 百臺服務器的方式:
1)設定跳板機,使用統一賬號登錄,便于安全與登錄的考量。
2)使用 salt、ansiable、puppet 進行系統的統一調度與配置的統一管理。
3)建立簡單的服務器的系統、配置、應用的 cmdb 信息管理。便于查閱每臺服務器上的各種信息記錄。
4、簡述 raid0 raid1 raid5 三種工作模式的工作原理及特點
RAID,可以把硬盤整合成一個大磁盤,還可以在大磁盤上再分區,放數據
還有一個大功能,多塊盤放在一起可以有冗余(備份)
RAID 整合方式有很多,常用的:0 1 5 10
RAID 0,可以是一塊盤和 N 個盤組合
其優點讀寫快,是 RAID 中最好的
缺點:沒有冗余,一塊壞了數據就全沒有了
RAID 1,只能 2 塊盤,盤的大小可以不一樣,以小的為準
10G+10G 只有 10G,另一個做備份。它有 100% 的冗余,缺點:浪費資源,成本高
RAID 5,3 塊盤,容量計算 10*(n-1), 損失一塊盤
特點,讀寫性能一般,讀還好一點,寫不好
冗余從好到壞:RAID1 RAID10 RAID 5 RAID0
性能從好到壞:RAID0 RAID10 RAID5 RAID1
成本從低到高:RAID0 RAID5 RAID1 RAID10
單臺服務器:很重要盤不多,系統盤,RAID1
數據庫服務器:主庫:RAID10 從庫 RAID5\RAID0(為了維護成本,RAID10)
WEB 服務器,如果沒有太多的數據的話,RAID5,RAID0(單盤)
有多臺,監控、應用服務器,RAID0 RAID5
我們會根據數據的存儲和訪問的需求,去匹配對應的 RAID 級別
5、LVS、Nginx、HAproxy 有什么區別?工作中你怎么選擇?
LVS:是基于四層的轉發
HAproxy:是基于四層和七層的轉發,是專業的代理服務器
Nginx:是 WEB 服務器,緩存服務器,又是反向代理服務器,可以做七層的轉發
區別:LVS 由于是基于四層的轉發所以只能做端口的轉發
而基于 URL 的、基于目錄的這種轉發 LVS 就做不了
工作選擇:
HAproxy 和 Nginx 由于可以做七層的轉發,所以 URL 和目錄的轉發都可以做
在很大并發量的時候我們就要選擇 LVS,像中小型公司的話并發量沒那么大
選擇 HAproxy 或者 Nginx 足已,由于 HAproxy 由是專業的代理服務器
配置簡單,所以中小型企業推薦使用 HAproxy
6、Squid、Varinsh 和 Nginx 有什么區別,工作中你怎么選擇?
Squid、Varinsh 和 Nginx 都是代理服務器
什么是代理服務器:
能當替用戶去訪問公網,并且能把訪問到的數據緩存到服務器本地,等用戶下次再訪問相同的資
源的時候,代理服務器直接從本地回應給用戶,當本地沒有的時候,我代替你去訪問公網,我接
收你的請求,我先在我自已的本地緩存找,如果我本地緩存有,我直接從我本地的緩存里回復你
如果我在我本地沒有找到你要訪問的緩存的數據,那么代理服務器就會代替你去訪問公網
區別:
1)Nginx 本來是反向代理 /web 服務器,用了插件可以做做這個副業
但是本身不支持特性挺多,只能緩存靜態文件
2)從這些功能上。varnish 和 squid 是專業的 cache 服務,而 nginx 這些是第三方模塊完成
3)varnish 本身的技術上優勢要高于 squid,它采用了可視化頁面緩存技術
在內存的利用上,Varnish 比 Squid 具有優勢,性能要比 Squid 高。
還有強大的通過 Varnish 管理端口,可以使用正則表達式快速、批量地清除部分緩存
它是內存緩存,速度一流,但是內存緩存也限制了其容量,緩存頁面和圖片一般是挺好的
4)squid 的優勢在于完整的龐大的 cache 技術資料,和很多的應用生產環境
工作中選擇:
要做 cache 服務的話,我們肯定是要選擇專業的 cache 服務,優先選擇 squid 或者 varnish。
7、Tomcat 和 Resin 有什么區別,工作中你怎么選擇?
區別:Tomcat 用戶數多,可參考文檔多,Resin 用戶數少,可考慮文檔少
最主要區別則是 Tomcat 是標準的 java 容器,不過性能方面比 resin 的要差一些
但穩定性和 java 程序的兼容性,應該是比 resin 的要好
工作中選擇:現在大公司都是用 resin,追求性能;而中小型公司都是用 Tomcat,追求穩定和程序的兼容
8、什么是中間件?什么是 jdk?
中間件介紹:
中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源
中間件位于客戶機 / 服務器的操作系統之上,管理計算機資源和網絡通訊
是連接兩個獨立應用程序或獨立系統的軟件。相連接的系統,即使它們具有不同的接口
但通過中間件相互之間仍能交換信息。執行中間件的一個關鍵途徑是信息傳遞
通過中間件,應用程序可以工作于多平臺或 OS 環境。
jdk:jdk 是 Java 的開發工具包
它是一種用于構建在 Java 平臺上發布的應用程序、applet 和組件的開發環境
9、講述一下 Tomcat8005、8009、8080 三個端口的含義?
8005==》關閉時使用
8009==》為 AJP 端口,即容器使用,如 Apache 能通過 AJP 協議訪問 Tomcat 的 8009 端口
8080==》一般應用使用
10、什么叫 CDN?
– 即內容分發網絡
– 其目的是通過在現有的 Internet 中增加一層新的網絡架構,將網站的內容發布到
最接近用戶的網絡邊緣,使用戶可就近取得所需的內容,提高用戶訪問網站的速度
11、什么叫網站灰度發布?
灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式
AB test 就是一種灰度發布方式,讓一部用戶繼續用 A,一部分用戶開始用 B
如果用戶對 B 沒有什么反對意見,那么逐步擴大范圍,把所有用戶都遷移到 B 上面 來
灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度
12、簡述 DNS 進行域名解析的過程?
用戶要訪問 www.baidu.com,會先找本機的 host 文件,再找本地設置的 DNS 服務器,如果也沒有的話,就去網絡中找根服務器,根服務器反饋結果,說只能提供一級域名服務器.cn,就去找一級域名服務器,一級域名服務器說只能提供二級域名服務器.com.cn, 就去找二級域名服務器,二級域服務器只能提供三級域名服務器.baidu.com.cn,就去找三級域名服務器,三級域名服務器正好有這個網站 www.baidu.com,然后發給請求的服務器,保存一份之后,再發給客戶端
13、RabbitMQ 是什么東西?
RabbitMQ 也就是消息隊列中間件,消息中間件是在消息的傳息過程中保存消息的容器
消息中間件再將消息從它的源中到它的目標中標時充當中間人的作用
隊列的主要目的是提供路由并保證消息的傳遞;如果發送消息時接收者不可用
消息隊列不會保留消息,直到可以成功地傳遞為止,當然,消息隊列保存消息也是有期限地
14、講一下 Keepalived 的工作原理?
在一個虛擬路由器中,只有作為 MASTER 的 VRRP 路由器會一直發送 VRRP 通告信息,
BACKUP 不會搶占 MASTER,除非它的優先級更高。當 MASTER 不可用時(BACKUP 收不到通告信息)
多臺 BACKUP 中優先級最高的這臺會被搶占為 MASTER。這種搶占是非常快速的(1s),以保證服務的連續性
由于安全性考慮,VRRP 包使用了加密協議進行加密。BACKUP 不會發送通告信息,只會接收通告信息
15、講述一下 LVS 三種模式的工作過程?
LVS 有三種負載均衡的模式,分別是 VS/NAT(nat 模式)VS/DR(路由模式) VS/TUN(隧道模式)
一、NAT 模式(VS-NAT)
原理:就是把客戶端發來的數據包的 IP 頭的目的地址,在負載均衡器上換成其中一臺 RS 的 IP 地址
并發至此 RS 來處理,RS 處理完后把數據交給負載均衡器, 負載均衡器再把數據包原 IP 地址改為自己的 IP
將目的地址改為客戶端 IP 地址即可期間, 無論是進來的流量, 還是出去的流量, 都必須經過負載均衡器
優點:集群中的物理服務器可以使用任何支持 TCP/IP 操作系統,只有負載均衡器需要一個合法的 IP 地址
缺點:擴展性有限。當服務器節點(普通 PC 服務器)增長過多時, 負載均衡器將成為整個系統的瓶頸
因為所有的請求包和應答包的流向都經過負載均衡器。當服務器節點過多時
大量的數據包都交匯在負載均衡器那,速度就會變慢!
二、IP 隧道模式(VS-TUN)
原理:首先要知道,互聯網上的大多 Internet 服務的請求包很短小,而應答包通常很大
那么隧道模式就是,把客戶端發來的數據包,封裝一個新的 IP 頭標記 (僅目的 IP) 發給 RS
RS 收到后, 先把數據包的頭解開, 還原數據包, 處理后, 直接返回給客戶端, 不需要再經過
負載均衡器。注意, 由于 RS 需要對負載均衡器發過來的數據包進行還原, 所以說必須支持
IPTUNNEL 協議,所以, 在 RS 的內核中, 必須編譯支持 IPTUNNEL 這個選項
優點:負載均衡器只負責將請求包分發給后端節點服務器,而 RS 將應答包直接發給用戶
所以,減少了負載均衡器的大量數據流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量
這種方式,一臺負載均衡器能夠為很多 RS 進行分發。而且跑在公網上就能進行不同地域的分發。
缺點:隧道模式的 RS 節點需要合法 IP,這種方式需要所有的服務器支持”IP Tunneling”
(IP Encapsulation)協議,服務器可能只局限在部分 Linux 系統上
三、直接路由模式(VS-DR)
原理:負載均衡器和 RS 都使用同一個 IP 對外服務但只有 DR 對 ARP 請求進行響應
所有 RS 對本身這個 IP 的 ARP 請求保持靜默也就是說, 網關會把對這個服務 IP 的請求全部定向給 DR
而 DR 收到數據包后根據調度算法, 找出對應的 RS, 把目的 MAC 地址改為 RS 的 MAC(因為 IP 一致)
并將請求分發給這臺 RS 這時 RS 收到這個數據包, 處理完成之后,由于 IP 一致,可以直接將數據返給客戶
則等于直接從客戶端收到這個數據包無異, 處理后直接返回給客戶端
由于負載均衡器要對二層包頭進行改換, 所以負載均衡器和 RS 之間必須在一個廣播域
也可以簡單的理解為在同一臺交換機上
優點:和 TUN(隧道模式)一樣,負載均衡器也只是分發請求,應答包通過單獨的路由方法返回給客戶端
與 VS-TUN 相比,VS-DR 這種實現方式不需要隧道結構,因此可以使用大多數操作系統做為物理服務器。
缺點:(不能說缺點,只能說是不足)要求負載均衡器的網卡必須與物理網卡在一個物理段上。
16、mysql 的 innodb 如何定位鎖問題,mysql 如何減少主從復制延遲?
mysql 的 innodb 如何定位鎖問題:
在使用 show engine innodb status 檢查引擎狀態時,發現了死鎖問題
在 5.5 中,information_schema 庫中增加了三個關于鎖的表(MEMORY 引擎)
innodb_trx ## 當前運行的所有事務 innodb_locks ## 當前出現的鎖 innodb_lock_waits ## 鎖等待的對應關系
mysql 如何減少主從復制延遲:
如果延遲比較大,就先確認以下幾個因素:
1. 從庫硬件比主庫差,導致復制延遲
2. 主從復制單線程,如果主庫寫并發太大,來不及傳送到從庫
就會導致延遲。更高版本的 mysql 可以支持多線程復制
3. 慢 SQL 語句過多
4. 網絡延遲
5. master 負載
主庫讀寫壓力大,導致復制延遲,架構的前端要加 buffer 及緩存層
6. slave 負載
一般的做法是,使用多臺 slave 來分攤讀請求,再從這些 slave 中取一臺專用的服務器
只作為備份用,不進行其他任何操作. 另外,2 個可以減少延遲的參數:
ndash;slave-net-timeout=seconds 單位為秒 默認設置為 3600 秒
# 參數含義:當 slave 從主數據庫讀取 log 數據失敗后,等待多久重新建立連接并獲取數據
ndash;master-connect-retry=seconds 單位為秒 默認設置為 60 秒
# 參數含義:當重新建立主從連接時,如果連接建立失敗,間隔多久后重試
通常配置以上 2 個參數可以減少網絡問題導致的主從數據同步延遲
MySQL 數據庫主從同步延遲解決方案
最簡單的減少 slave 同步延時的方案就是在架構上做優化,盡量讓主庫的 DDL 快速執行
還有就是主庫是寫,對數據安全性較高,比如 sync_binlog=1,innodb_flush_log_at_trx_commit= 1 之類的設置,而 slave 則不需要這么高的數據安全,完全可以講 sync_binlog 設置為 0 或者關閉 binlog
innodb_flushlog 也可以設置為 0 來提高 sql 的執行效率。另外就是使用比主庫更好的硬件設備作為 slave
17、如何重置 mysql root 密碼?
一、在已知 MYSQL 數據庫的 ROOT 用戶密碼的情況下,修改密碼的方法:
1. 在 SHELL 環境下,使用 mysqladmin 命令設置:
mysqladmin ndash;u root ndash;p password “新密碼” 回車后要求輸入舊密碼
2. 在 mysql 環境中, 使用 update 命令,直接更新 mysql 庫 user 表的數據:
Update mysql.user set passwordpassword=password(lsquo; 新密碼 rsquo;) where user= rsquo;root rsquo;; flush privileges;
注意:mysql 語句要以分號”;”結束
3. 在 mysql 環境中,使用 grant 命令,修改 root 用戶的授權權限。
grant all on *.* to root@ rsquo;localhost rsquo; identified by lsquo; 新密碼 rsquo;;
二、如查忘記了 mysql 數據庫的 ROOT 用戶的密碼,又如何做呢?方法如下:
1. 關閉當前運行的 mysqld 服務程序:service mysqld stop(要先將 mysqld 添加為系統服務)
2. 使用 mysqld_safe 腳本以安全模式(不加載授權表)啟動 mysqld 服務
/usr/local/mysql/bin/mysqld_safe --skip-grant-table
3. 使用空密碼的 root 用戶登錄數據庫,重新設置 ROOT 用戶的密碼
#mysql -u root Mysql Update mysql.user set passwordpassword=password(lsquo; 新密碼 rsquo;) where user= rsquo;root rsquo;; Mysql flush privileges;
18、lvs/nginx/haproxy 優缺點
Nginx 的優點是:
1. 工作在網絡的 7 層之上,可以針對 http 應用做一些分流的策略,比如針對域名、目錄結構
它的正則規則比 HAProxy 更為強大和靈活,這也是它目前廣泛流行的主要原因之一
Nginx 單憑這點可利用的場合就遠多于 LVS 了。
2.Nginx 對網絡穩定性的依賴非常小,理論上能 ping 通就就能進行負載功能,這個也是它的優勢之一
相反 LVS 對網絡穩定性依賴比較大,這點本人深有體會;
3.Nginx 安裝和配置比較簡單,測試起來比較方便,它基本能把錯誤用日志打印出來
LVS 的配置、測試就要花比較長的時間了,LVS 對網絡依賴比較大。
4. 可以承擔高負載壓力且穩定,在硬件不差的情況下一般能支撐幾萬次的并發量,負載度比 LVS 相對小些。
5.Nginx 可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持 url 來檢測。比如用戶正在上傳一個文件,而處理該上傳的節點剛好在上傳過程中出現故障,Nginx 會把上傳切到另一臺服務器重新處理,而 LVS 就直接斷掉了
如果是上傳一個很大的文件或者很重要的文件的話,用戶可能會因此而不滿。
6.Nginx 不僅僅是一款優秀的負載均衡器 / 反向代理軟件,它同時也是功能強大的 Web 應用服務器
LNMP 也是近幾年非常流行的 web 架構,在高流量的環境中穩定性也很好。
7.Nginx 現在作為 Web 反向加速緩存越來越成熟了,速度比傳統的 Squid 服務器更快,可考慮用其作為反向代理加速器
8.Nginx 可作為中層反向代理使用,這一層面 Nginx 基本上無對手,唯一可以對比 Nginx 的就只有 lighttpd 了
不過 lighttpd 目前還沒有做到 Nginx 完全的功能,配置也不那么清晰易讀,社區資料也遠遠沒 Nginx 活躍
9.Nginx 也可作為靜態網頁和圖片服務器,這方面的性能也無對手。還有 Nginx 社區非常活躍,第三方模塊也很多
Nginx 的缺點是:
1.Nginx 僅能支持 http、https 和 Email 協議,這樣就在適用范圍上面小些,這個是它的缺點
2. 對后端服務器的健康檢查,只支持通過端口來檢測,不支持通過 url 來檢測
不支持 Session 的直接保持,但能通過 ip_hash 來解決
LVS:使用 Linux 內核集群實現一個高性能、高可用的負載均衡服務器
它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)
LVS 的優點是:
1. 抗負載能力強、是工作在網絡 4 層之上僅作分發之用,沒有流量的產生
這個特點也決定了它在負載均衡軟件里的性能最強的,對內存和 cpu 資源消耗比較低
2. 配置性比較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西
所以并不需要太多接觸,大大減少了人為出錯的幾率
3. 工作穩定,因為其本身抗負載能力很強,自身有完整的雙機熱備方案
如 LVS+Keepalived,不過我們在項目實施中用得最多的還是 LVS/DR+Keepalived
4. 無流量,LVS 只分發請求,而流量并不從它本身出去,這點保證了均衡器 IO 的性能不會收到大流量的影響。
5. 應用范圍較廣,因為 LVS 工作在 4 層,所以它幾乎可對所有應用做負載均衡,包括 http、數據庫、在線聊天室等
LVS 的缺點是:
1. 軟件本身不支持正則表達式處理,不能做動靜分離
而現在許多網站在這方面都有較強的需求,這個是 Nginx/HAProxy+Keepalived 的優勢所在
2. 如果是網站應用比較龐大的話,LVS/DR+Keepalived 實施起來就比較復雜了
特別后面有 Windows Server 的機器的話,如果實施及配置還有維護過程就比較復雜了
相對而言,Nginx/HAProxy+Keepalived 就簡單多了。
HAProxy 的特點是:
1.HAProxy 也是支持虛擬主機的。
2.HAProxy 的優點能夠補充 Nginx 的一些缺點,比如支持 Session 的保持,Cookie 的引導
同時支持通過獲取指定的 url 來檢測后端服務器的狀態
3.HAProxy 跟 LVS 類似,本身就只是一款負載均衡軟件
單純從效率上來講 HAProxy 會比 Nginx 有更出色的負載均衡速度,在并發處理上也是優于 Nginx 的
4.HAProxy 支持 TCP 協議的負載均衡轉發,可以對 MySQL 讀進行負載均衡
對后端的 MySQL 節點進行檢測和負載均衡,大家可以用 LVS+Keepalived 對 MySQL 主從做負載均衡
5.HAProxy 負載均衡策略非常多,HAProxy 的負載均衡算法現在具體有如下 8 種:
①roundrobin,表示簡單的輪詢,這個不多說,這個是負載均衡基本都具備的;
② static-rr,表示根據權重,建議關注;
③leastconn,表示最少連接者先處理,建議關注;
④ source,表示根據請求源 IP,這個跟 Nginx 的 IP_hash 機制類似
我們用其作為解決 session 問題的一種方法,建議關注;
⑤ri,表示根據請求的 URI;
⑥rl_param,表示根據請求的 URl 參數 rsquo;balance url_param rsquo; requires an URL parameter name;
⑦hdr(name),表示根據 HTTP 請求頭來鎖定每一次 HTTP 請求;
⑧rdp-cookie(name),表示根據據 cookie(name)來鎖定并哈希每一次 TCP 請求。
19、mysql 數據備份工具
mysqldump 工具
mysqldump 是 mysql 自帶的備份工具,目錄在 bin 目錄下面:/usr/local/mysql/bin/mysqldump
支持基于 innodb 的熱備份,但是由于是邏輯備份,所以速度不是很快,適合備份數據比較小的場景
Mysqldump 完全備份 + 二進制日志可以實現基于時間點的恢復。
基于 LVM 快照備份
在物理備份中,有基于文件系統的物理備份(LVM 的快照),也可以直接用 tar 之類的命令對整個數據庫目錄
進行打包備份,但是這些只能進行泠備份,不同的存儲引擎備份的也不一樣,myisam 自動備份到表級別
而 innodb 不開啟獨立表空間的話只能備份整個數據庫。
tar 包備份
percona 提供的 xtrabackup 工具
支持 innodb 的物理熱備份,支持完全備份,增量備份,而且速度非常快,支持 innodb 存儲引起的數據在不同
數據庫之間遷移,支持復制模式下的從機備份恢復備份恢復,為了讓 xtrabackup 支持更多的功能擴展
可以設立獨立表空間,打開 innodb_file_per_table 功能,啟用之后可以支持單獨的表備份
20、keepalive 的工作原理和如何做到健康檢查
keepalived 是以 VRRP 協議為實現基礎的,VRRP 全稱 Virtual Router Redundancy Protocol,即虛擬路由冗余協議。
虛擬路由冗余協議,可以認為是實現路由器高可用的協議,即將 N 臺提供相同功能的路由器組成一個路由器組
這個組里面有一個 master 和多個 backup,master 上面有一個對外提供服務的 vip(該路由器所在局域網內
其他機器的默認路由為該 vip),master 會發組播,當 backup 收不到 vrrp 包時就認為 master 宕掉了
這時就需要根據 VRRP 的優先級來選舉一個 backup 當 master。這樣就可以保證路由器的高可用了
keepalived 主要有三個模塊,分別是 core、check 和 vrrp。core 模塊為 keepalived 的核心,負責主進程的啟動、維護
及全局配置文件的加載和解析。check 負責健康檢查,包括常見的各種檢查方式,vrrp 模塊是來實現 VRRP 協議的
Keepalived 健康檢查方式配置 HTTP_GET|SSL_GET HTTP_GET | SSL_GET { url { path /# HTTP/SSL 檢查的 url 可以是多個 digest STRING # HTTP/SSL 檢查后的摘要信息用工具 genhash 生成 status_code 200# HTTP/SSL 檢查返回的狀態碼 } connect_port 80 # 連接端口 bindto IPADD connect_timeout 3 # 連接超時時間 nb_get_retry 3 # 重連次數 delay_before_retry 2 # 連接間隔時間 }
21、統計 ip 訪問情況,要求分析 nginx 訪問日志,找出訪問頁面數量在前十位的 ip
cat access.log | awk {print $1} | uniq -c | sort -rn | head -10
22、使用 tcpdump 監聽主機為 192.168.1.1,tcp 端口為 80 的數據,同時將輸出結果保存輸出到 tcpdump.log
tcpdump host 192.168.1.1 and port 80 tcpdump.log
23、如何將本地 80 端口的請求轉發到 8080 端口,當前主機 IP 為 192.168.2.1
iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080
24、簡述 raid0 raid1 raid5 三種工作模式的工作原理及特點
RAID 0:帶區卷,連續以位或字節為單位分割數據,并行讀 / 寫于多個磁盤上,因此具有很高的數據傳輸率
但它沒有數據冗余,RAID 0 只是單純地提高性能,并沒有為數據的可靠性提供保證
而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0 不能應用于數據安全性要求高的場合
RAID 1:鏡像卷,它是通過磁盤數據鏡像實現數據冗余,在成對的獨立磁盤上產生互為備份的數據
不能提升寫數據效率。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此 RAID1 可以提高讀取性能
RAID 1 是磁盤陣列中單位成本最高的,鏡像卷可用容量為總容量的 1 /2,但提供了很高的數據安全性和可用性
當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據
RAID5:至少由 3 塊硬盤組成,分布式奇偶校驗的獨立磁盤結構,它的奇偶校驗碼存在于所有磁盤上
任何一個硬盤損壞,都可以根據其它硬盤上的校驗位來重建損壞的數據(最多允許 1 塊硬盤損壞)
所以 raid5 可以實現數據冗余,確保數據的安全性,同時 raid5 也可以提升數據的讀寫性能
25、你對現在運維工程師的理解和以及對其工作的認識
運維工程師在公司當中責任重大,需要保證時刻為公司及客戶提供最高、最快、最穩定、最安全的服務
運維工程師的一個小小的失誤,很有可能會對公司及客戶造成重大損失
因此運維工程師的工作需要嚴謹及富有創新精神
26、實時抓取并顯示當前系統中 tcp 80 端口的網絡數據信息,請寫出完整操作命令
tcpdump -nn tcp port 80
27、服務器開不了機怎么解決一步步的排查
A、造成服務器故障的原因可能有以下幾點:
B、如何排查服務器故障的處理步驟如下:
28、Linux 系統中病毒怎么解決
1)最簡單有效的方法就是重裝系統
2)要查的話就是找到病毒文件然后刪除
中毒之后一般機器 cpu、內存使用率會比較高
機器向外發包等異常情況,排查方法簡單介紹下
top 命令找到 cpu 使用率最高的進程
一般病毒文件命名都比較亂,可以用 ps aux 找到病毒文件位置
rm -f 命令刪除病毒文件
檢查計劃任務、開機啟動項和病毒文件目錄有無其他可以文件等
3)由于即使刪除病毒文件不排除有潛伏病毒,所以最好是把機器備份數據之后重裝一下
29、發現一個病毒文件你刪了他又自動創建怎么解決
公司的內網某臺 linux 服務器流量莫名其妙的劇增, 用 iftop 查看有連接外網的情況
針對這種情況一般重點查看 netstat 連接的外網 ip 和端口。
用 lsof -p pid 可以查看到具體是那些進程,哪些文件
經查勘發現 /root 下有相關的配置 conf.n hhe 兩個可疑文件,rm -rf 后不到一分鐘就自動生成了
由此推斷是某個母進程產生的這些文件。所以找到母進程就是找到罪魁禍首
查殺病毒最好斷掉外網訪問,還好是內網服務器,可以通過內網訪問
斷了內網,病毒就失去外聯的能力,殺掉它就容易的多
怎么找到呢,找了半天也沒有看到蛛絲馬跡,沒辦法只有 ps axu 一個個排查
方法是查看可以的用戶和和系統相似而又不是的冒牌貨,果然,看到了如下進程可疑
看不到圖片就是 /usr/bin/.sshd
于是我殺掉所有.sshd 相關的進程,然后直接刪掉.sshd 這個可執行文件
然后才刪掉了文章開頭提到的自動復活的文件
總結一下,遇到這種問題,如果不是太嚴重,盡量不要重裝系統
一般就是先斷外網,然后利用 iftop,ps,netstat,chattr,lsof,pstree 這些工具順藤摸瓜
一般都能找到元兇。但是如果遇到諸如此類的問題
/boot/efi/EFI/redhat/grub.efi: Heuristics.Broken.Executable FOUND,個人覺得就要重裝系統了
30、說說 TCP/IP 的七層模型
應用層 (Application):
網絡服務與最終用戶的一個接口。
協議有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示層(Presentation Layer):
數據的表示、安全、壓縮。(在五層模型里面已經合并到了應用層)
格式有,JPEG、ASCll、DECOIC、加密格式等
會話層(Session Layer):
建立、管理、終止會話。(在五層模型里面已經合并到了應用層)
對應主機進程,指本地主機與遠程主機正在進行的會話
傳輸層 (Transport):
定義傳輸數據的協議端口號,以及流控和差錯校驗。
協議有:TCP UDP,數據包一旦離開網卡即進入網絡傳輸層
網絡層 (Network):
進行邏輯地址尋址,實現不同網絡之間的路徑選擇。
協議有:ICMP IGMP IP(IPV4 IPV6)ARP RARP
數據鏈路層 (Link):
建立邏輯連接、進行硬件地址尋址、差錯校驗等功能。(由底層網絡定義協議)
將比特組合成字節進而組合成幀,用 MAC 地址訪問介質,錯誤發現但不能糾正
物理層(Physical Layer):
是計算機網絡 OSI 模型中最低的一層
物理層規定: 為傳輸數據所需要的物理鏈路創建、維持、拆除
而提供具有機械的,電子的,功能的和規范的特性
簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。局域網與廣域網皆屬第 1、2 層
物理層是 OSI 的第一層,它雖然處于最底層,卻是整個開放系統的基礎
物理層為設備之間的數據通信提供傳輸媒體及互連設備,為數據傳輸提供可靠的環境
如果您想要用盡量少的詞來記住這個第一層,那就是“信號和介質”
31、你常用的 Nginx 模塊,用來做什么
rewrite 模塊,實現重寫功能
access 模塊:來源控制
ssl 模塊:安全加密
ngx_http_gzip_module:網絡傳輸壓縮模塊
ngx_http_proxy_module 模塊實現代理
ngx_http_upstream_module 模塊實現定義后端服務器列表
ngx_cache_purge 實現緩存清除功能
32、請列出你了解的 web 服務器負載架構
Nginx Haproxy Keepalived LVS
33、查看 http 的并發請求數與其 TCP 連接狀態
netstat -n | awk /^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}
還有 ulimit -n 查看 linux 系統打開最大的文件描述符,這里默認 1024
不修改這里 web 服務器修改再大也沒用,若要用就修改很幾個辦法,這里說其中一個:
修改 /etc/security/limits.conf * soft nofile 10240 * hard nofile 10240
重啟后生效
34、用 tcpdump 嗅探 80 端口的訪問看看誰最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F . {print $1 . $2 . $3 . $4} | sort | uniq -c | sort -nr |head -20
35、寫一個腳本,實現判斷 192.168.1.0/24 網絡里,當前在線的 IP 有哪些,能 ping 通則認為在線
#!/bin/bash for ip in `seq 1 255` do { ping -c 1 192.168.1.$ip /dev/null 2 1 if [ $? -eq 0 ]; then echo 192.168.1.$ip UP else echo 192.168.1.$ip DOWN fi } done wait
36、已知 apache 服務的訪問日志按天記錄在服務器本地目錄 /app/logs 下,由于磁盤空間緊張現在要求只能保留最近 7 天的訪問日志!請問如何解決?請給出解決辦法或配置或處理命令
創建文件腳本:
#!/bin/bash for n in `seq 14` do date -s 11/0$n/14 touch access_www_`(date +%F)`.log done
解決方法:
# pwd/application/logs # ll -rw-r--r--. 1 root root 0 Jan 1 00:00 access_www_2015-01-01.log -rw-r--r--. 1 root root 0 Jan 2 00:00 access_www_2015-01-02.log -rw-r--r--. 1 root root 0 Jan 3 00:00 access_www_2015-01-03.log -rw-r--r--. 1 root root 0 Jan 4 00:00 access_www_2015-01-04.log -rw-r--r--. 1 root root 0 Jan 5 00:00 access_www_2015-01-05.log -rw-r--r--. 1 root root 0 Jan 6 00:00 access_www_2015-01-06.log -rw-r--r--. 1 root root 0 Jan 7 00:00 access_www_2015-01-07.log -rw-r--r--. 1 root root 0 Jan 8 00:00 access_www_2015-01-08.log -rw-r--r--. 1 root root 0 Jan 9 00:00 access_www_2015-01-09.log -rw-r--r--. 1 root root 0 Jan 10 00:00 access_www_2015-01-10.log -rw-r--r--. 1 root root 0 Jan 11 00:00 access_www_2015-01-11.log -rw-r--r--. 1 root root 0 Jan 12 00:00 access_www_2015-01-12.log -rw-r--r--. 1 root root 0 Jan 13 00:00 access_www_2015-01-13.log -rw-r--r--. 1 root root 0 Jan 14 00:00 access_www_2015-01-14.log # find /application/logs/ -type f -mtime +7 -name *.log |xargs rm ndash;f ## 也可以使用 -exec rm -f {} \; 進行刪除 # ll -rw-r--r--. 1 root root 0 Jan 7 00:00 access_www_2015-01-07.log -rw-r--r--. 1 root root 0 Jan 8 00:00 access_www_2015-01-08.log -rw-r--r--. 1 root root 0 Jan 9 00:00 access_www_2015-01-09.log -rw-r--r--. 1 root root 0 Jan 10 00:00 access_www_2015-01-10.log -rw-r--r--. 1 root root 0 Jan 11 00:00 access_www_2015-01-11.log -rw-r--r--. 1 root root 0 Jan 12 00:00 access_www_2015-01-12.log -rw-r--r--. 1 root root 0 Jan 13 00:00 access_www_2015-01-13.log -rw-r--r--. 1 root root 0 Jan 14 00:00 access_www_2015-01-14.log
37、如何優化 Linux 系統(可以不說太具體)?
鴻蒙官方戰略合作共建——HarmonyOS 技術社區
不用 root,添加普通用戶,通過 sudo 授權管理
更改默認的遠程連接 SSH 服務端口及禁止 root 用戶遠程連接
定時自動更新服務器時間
配置國內 yum 源
關閉 selinux 及 iptables(iptables 工作場景如果有外網 IP 一定要打開,高并發除外)
調整文件描述符的數量
精簡開機啟動服務(crond rsyslog network sshd)
內核參數優化(/etc/sysctl.conf)
更改字符集,支持中文,但建議還是用英文字符集,防止亂碼
鎖定關鍵系統文件
清空 /etc/issue,去除系統及內核版本登錄前的屏幕顯示
38、請執行命令取出 linux 中 eth0 的 IP 地址(請用 cut,有能力者也可分別用 awk,sed 命令答)
cut 方法 1: # ifconfig eth0|sed -n 2p |cut -d : -f2|cut -d -f1 192.168.20.130 awk 方法 2: # ifconfig eth0|awk NR==2 |awk -F : {print $2} |awk {print $1} 192.168.20.130 awk 多分隔符方法 3: # ifconfig eth0|awk NR==2 |awk -F [: ]+ {print $4} 192.168.20.130 sed 方法 4: # ifconfig eth0|sed -n /inet addr/p |sed -r s#^.*ddr:(.*)Bc.*$#\1#g 192.168.20.130
39、請寫出下面 linux SecureCRT 命令行快捷鍵命令的功能?
Ctrl + a Ctrl + c Ctrl + d Ctrl + e Ctrl + l Ctrl + u Ctrl + k tab Ctrl+shift+c Ctrl+shift+v
解答:
Ctrl + a mdash;- 光標移動到行首
Ctrl + e mdash;- 光標移動到行尾
Ctrl + c mdash;- 終止當前程序
Ctrl + d mdash;- 如果光標前有字符則刪除,沒有則退出當前中斷
Ctrl + l mdash;- 清屏
Ctrl + u mdash;- 剪切光標以前的字符
Ctrl + k mdash;- 剪切光標以后的字符
Ctrl + y mdash;- 復制 u / k 的內容
Ctrl + r mdash;- 查找最近用過的命令
tab mdash;- 命令或路徑補全
Ctrl+shift+c mdash;- 復制
Ctrl+shift+v mdash;- 粘貼
40、每天晚上 12 點,打包站點目錄 /var/www/html 備份到 /data 目錄下(最好每次備份按時間生成不同的備份包)
# cat a.sh #/bin/bash cd /var/www/ /bin/tar zcf /data/html-`date +%m-%d%H`.tar.gz html/ # crontab ndash;e 00 00 * * * /bin/sh /root/a.sh
“Linux 運維的面試題有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!