1. 程式人生 > >Linux運維面試題1

Linux運維面試題1

1 管理3百臺伺服器的方式:

1)設定跳板機,使用統一賬號登入,便於安全與登入的考量。
2)使用salt、ansiable、puppet進行系統的統一排程與配置的統一管理。
3)建立簡單的伺服器的系統、配置、應用的cmdb資訊管理。便於查閱每臺伺服器上的各種資訊記錄。、配置、應用的cmdb資訊管理。便於查閱每臺伺服器上的各種信

2 說說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的第一層,它雖然處於最底層,卻是整個開放系統的基礎

物理層為裝置之間的資料通訊提供傳輸媒體及互連裝置,為資料傳輸提供可靠的環境

如果您想要用盡量少的詞來記住這個第一層,那就是“訊號和介質”

3 伺服器開不了機怎麼解決一步步的排查

A、造成伺服器故障的原因可能有以下幾點:

wKioL1lMgrHDCEhfAABceoMZqwY330.png-wh_50

B、如何排查伺服器故障的處理步驟如下:

wKioL1lMg2vhIvWKAAKkezGi_-4547.png-wh_50

4 Linux系統中病毒怎麼解決?

1)最簡單有效的方法就是重灌系統

2)要查的話就是找到病毒檔案然後刪除

  中毒之後一般機器cpu、記憶體使用率會比較高

  機器向外發包等異常情況,排查方法簡單介紹下
top 命令找到cpu使用率最高的程序

一般病毒檔案命名都比較亂,可以用 ps aux 找到病毒檔案位置

rm -f 命令刪除病毒檔案

檢查計劃任務、開機啟動項和病毒檔案目錄有無其他可以檔案等

3)由於即使刪除病毒檔案不排除有潛伏病毒,所以最好是把機器備份資料之後重灌一下

5 發現一個病毒檔案你刪了他又自動建立怎麼解決

公司的內網某臺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,個人覺得就要重灌系統了

6 什麼是運維?什麼是遊戲運維?

7 簡述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級別
LVS、Nginx、HAproxy有什麼區別?工作中你怎麼選擇?
LVS: 是基於四層的轉發
HAproxy: 是基於四層和七層的轉發,是專業的代理伺服器
Nginx: 是WEB伺服器,快取伺服器,又是反向代理伺服器,可以做七層的轉發

區別: LVS由於是基於四層的轉發所以只能做埠的轉發
而基於URL的、基於目錄的這種轉發LVS就做不了

工作選擇:

HAproxy和Nginx由於可以做七層的轉發,所以URL和目錄的轉發都可以做
在很大併發量的時候我們就要選擇LVS,像中小型公司的話併發量沒那麼大
選擇HAproxy或者Nginx足已,由於HAproxy由是專業的代理伺服器
配置簡單,所以中小型企業推薦使用HAproxy

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引數’balance url_param’ requires an URL parameter name;

⑦hdr(name),表示根據HTTP請求頭來鎖定每一次HTTP請求;

⑧rdp-cookie(name),表示根據據cookie(name)來鎖定並雜湊每一次TCP請求。

常用的Nginx模組,用來做什麼

rewrite模組,實現重寫功能
access模組:來源控制
ssl模組:安全加密
ngx_http_gzip_module:網路傳輸壓縮模組
ngx_http_proxy_module 模組實現代理
ngx_http_upstream_module模組實現定義後端伺服器列表
ngx_cache_purge實現快取清除功能

請列出你瞭解的web伺服器負載架構

Nginx
Haproxy
Keepalived
LVS

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。

Tomcat和Resin有什麼區別,工作中你怎麼選擇?

區別:Tomcat使用者數多,可參考文件多,Resin使用者數少,可考慮文件少
最主要區別則是Tomcat是標準的java容器,不過效能方面比resin的要差一些
但穩定性和java程式的相容性,應該是比resin的要好

工作中選擇:現在大公司都是用resin,追求效能;而中小型公司都是用Tomcat,追求穩定和程式的相容

什麼是中介軟體?什麼是jdk? 

中介軟體介紹:
中介軟體是一種獨立的系統軟體或服務程式,分散式應用軟體藉助這種軟體在不同的技術之間共享資源
中介軟體位於客戶機/ 伺服器的作業系統之上,管理計算機資源和網路通訊
是連線兩個獨立應用程式或獨立系統的軟體。相連線的系統,即使它們具有不同的介面

但通過中介軟體相互之間仍能交換資訊。執行中介軟體的一個關鍵途徑是資訊傳遞
通過中介軟體,應用程式可以工作於多平臺或OS環境。

jdk:jdk是Java的開發工具包

講述一下Tomcat8005、8009、8080三個埠的含義?

8005==》 關閉時使用
8009==》 為AJP埠,即容器使用,如Apache能通過AJP協議訪問Tomcat的8009埠
8080==》 一般應用使用

什麼叫CDN?

即內容分發網路
其目的是通過在現有的Internet中增加一層新的網路架構,將網站的內容釋出到
最接近使用者的網路邊緣,使使用者可就近取得所需的內容,提高使用者訪問網站的速度
什麼叫網站灰度釋出?
灰度釋出是指在黑與白之間,能夠平滑過渡的一種釋出方式
AB test就是一種灰度釋出方式,讓一部使用者繼續用A,一部分使用者開始用B
如果使用者對B沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到B上面 來
灰度釋出可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度

簡述DNS進行域名解析的過程?

使用者要訪問www.baidu.com,會先找本機的host檔案,再找本地設定的DNS伺服器, 如果也沒有的話,就去網路中找根伺服器,根伺服器反饋結果,說只能提供一級域名伺服器.cn,就去找一級域名伺服器,一級域名伺服器說只能提供二級域名伺服器.com.cn,就去找二級域名伺服器,二級域伺服器只能提供三級域名伺服器.baidu.com.cn,就去找三級域名伺服器,三級域名伺服器正好有這個網站www.baidu.com,然後發給請求的伺服器,儲存一份之後,再發給客戶端
RabbitMQ是什麼東西?
RabbitMQ也就是訊息佇列中介軟體,訊息中介軟體是在訊息的傳息過程中儲存訊息的容器
訊息中介軟體再將訊息從它的源中到它的目標中標時充當中間人的作用
佇列的主要目的是提供路由並保證訊息的傳遞;如果傳送訊息時接收者不可用
訊息佇列不會保留訊息,直到可以成功地傳遞為止,當然,訊息佇列儲存訊息也是有期限地
講一下Keepalived的工作原理?
在一個虛擬路由器中,只有作為MASTER的VRRP路由器會一直髮送VRRP通告資訊,
BACKUP不會搶佔MASTER,除非它的優先順序更高。當MASTER不可用時(BACKUP收不到通告資訊)
多臺BACKUP中優先順序最高的這臺會被搶佔為MASTER。這種搶佔是非常快速的(<1s),以保證服務的連續性
由於安全性考慮,VRRP包使用了加密協議進行加密。BACKUP不會發送通告資訊,只會接收通告資訊

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 #連線間隔時間
}

講述一下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這種實現方式不需要隧道結構,因此可以使用大多數作業系統做為物理伺服器。

缺點:(不能說缺點,只能說是不足)要求負載均衡器的網絡卡必須與物理網絡卡在一個物理段上。
mysql的innodb如何定位鎖問題,mysql如何減少主從複製延遲?
mysql的innodb如何定位鎖問題:
在使用 show engine innodb status檢查引擎狀態時,發現了死鎖問題
在5.5中,information_schema 庫中增加了三個關於鎖的表(MEMORY引擎)

innodb_trx ## 當前執行的所有事務

innodb_locks ## 當前出現的鎖

innodb_lock_waits ## 鎖等待的對應關係

mysql如何減少主從複製延遲:
如果延遲比較大,就先確認以下幾個因素:

從庫硬體比主庫差,導致複製延遲
主從複製單執行緒,如果主庫寫併發太大,來不及傳送到從庫
就會導致延遲。更高版本的mysql可以支援多執行緒複製
慢SQL語句過多
網路延遲
master負載
主庫讀寫壓力大,導致複製延遲,架構的前端要加buffer及快取層
slave負載
一般的做法是,使用多臺slave來分攤讀請求,再從這些slave中取一臺專用的伺服器
只作為備份用,不進行其他任何操作.另外, 2個可以減少延遲的引數:
–slave-net-timeout=seconds 單位為秒 預設設定為 3600秒

#引數含義:當slave從主資料庫讀取log資料失敗後,等待多久重新建立連線並獲取資料
–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
如何重置mysql root密碼?
一、 在已知MYSQL資料庫的ROOT使用者密碼的情況下,修改密碼的方法:

1、 在SHELL環境下,使用mysqladmin命令設定:

   mysqladmin –u root –p password “新密碼”   回車後要求輸入舊密碼
2、 在mysql>環境中,使用update命令,直接更新mysql庫user表的資料:

   Update  mysql.user  set  password=password(‘新密碼’)  where  user=’root’;

   flush   privileges;

   注意:mysql語句要以分號”;”結束
3、 在mysql>環境中,使用grant命令,修改root使用者的授權許可權。

   grant  all  on  *.*  to   [email protected]’localhost’  identified  by  ‘新密碼’;
二、 如查忘記了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  password=password(‘新密碼’)  where  user=’root’;

   Mysql> flush   privileges;

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功能,啟用之後可以支援單獨的表備份
如何優化 Linux系統(可以不說太具體)?
⑴登入系統:不使用root登入,通過sudo授權管理,使用普通使用者登入。

⑵禁止SSH遠端:更改預設的遠端連線SSH服務及禁止root遠端連線。

⑶時間同步:定時自動更新伺服器時間。

⑷配置yum更新源,從國內更新下載安裝rpm包。

⑸關閉selinux及iptables(iptables工作場景如有wan ip,一般要開啟,高併發除外)

⑹調整檔案描述符數量,程序及檔案的開啟都會消耗檔案描述符。

⑺定時自動清理/var/spool/clientmquene/目錄垃圾檔案,防止節點被佔滿(c6.4預設沒有sendmail,因此可以不配。)

⑻精簡開機啟動服務(crond、sshd、network、rsyslog)

⑼Linux核心引數優化/etc/sysctl.conf,執行sysct -p生效。

更改字符集,支援中文,但是還是建議使用英文,防止亂碼問題出現。

⑾鎖定關鍵系統檔案(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 處理以上內容後,把chatter改名,就更安全了。)

⑿清空/etc/issue,去除系統及核心版本登陸前的螢幕顯示

linux SecureCRT 命令列快捷鍵命令的功能?

Ctrl + a —->游標移動到行首

Ctrl + e —->游標移動到行尾

Ctrl + c —->終止當前程式

Ctrl + d —->如果游標前有字元則刪除,沒有則退出當前中斷

Ctrl + l —->清屏

Ctrl + u —->剪下游標以前的字元

Ctrl + k —->剪下游標以後的字元

Ctrl + y —->複製u/k的內容

Ctrl + r —->查詢最近用過的命令

tab —->命令或路徑補全

Ctrl+shift+c —->複製

Ctrl+shift+v —->貼上

Linux作業系統知識

1.常見的Linux發行版本都有什麼?你最擅長哪一個?它的官網網站是什麼?說明你擅長哪一塊?
答:
常見的Linux發現版本有Redhat、Centos、Debian、Ubuntu、Suse
最擅長Redhat和Centos
Redhat官網:www.redhat.com
Centos官網:www.centos.org
我最擅長Linux基本命令操作及相關服務搭建

2.Linux開機啟動流程詳細步驟是什麼?系統安裝完,忘記密碼如何破解?
答:

開機步驟
a、首先是bios加電自檢、初始化,這個過程會檢測相關硬體(cpu、記憶體、顯示卡、硬碟等)

     然後讀取一個啟動順序,以硬碟為例,會讀取硬碟中的MBR。
b、載入核心讀取/boot裡邊的配置檔案。
c、啟動初始化程序,開始執行/sbin/init
d、讀取/etc/inittab確定執行級別
e、根據/etc/rc.d/rcN.d載入開機啟動程式,rcN.d都是連結檔案,都指向/etc/rc.d/init.d再執行/etc/rc.d/rc.local
f、使用者登入(3種方式ssh、命令列、圖形化)
g、進入loginshell,以命令列為例,首先讀取/etc/profile這個全域性配置檔案

     然後再針對當前使用者讀取家目錄中的 ~/.bash_profile和~/.bash_login和~/.profile
h、最後一步就是開啟non-loginshell

     進入圖形化後手動新建一個終端,但這個shell不讀取/etc/profile

忘記密碼
a、重啟系統,在GRUB介面,選取忘記密碼的系統,按e鍵進入編輯模式
b、選項Kernel.....按e鍵進行編輯
c、在編輯介面rhgbquiet後加空格,然後輸入"single""1"回車
d、按b啟動進入單使用者模式
f、進入系統後passwd回車輸入新密碼(如果有selinux,先暫時關閉setenforce0)

3.企業中Linux伺服器系統分割槽標準是什麼?(硬碟為300G,記憶體16G)
答:
/boot200M
/swap16G
/70G
/data剩下的全部空間

4.某一天突然發現Linux系統檔案只讀,該怎麼辦呢?完整操作步驟。
答:
首先把系統關機,然後以光碟啟動進入救援模式(linuxrescue)

執行"fsck.ext3-y/dev/sda2"(假如只讀的分割槽型別為ext3,分割槽為/dev/sda2)

5.安裝一臺系統使用DVD光碟安裝,如何安裝50臺Linux系統如何安裝呢?思考一下。
答:
a、可以多用幾張DVD一臺一臺的安裝。
b、可以用Kickstart批量安裝(客戶端從網路啟動)

6.用虛擬機器安裝了一臺Linux系統,突然想克隆一臺伺服器,克隆後發現無法上網,如何解決?
答:
a、編輯網絡卡配置檔案/etc/sysconfig/network-scripts/ifcfg-eth0,將HWADDR和MAC地址這兩行刪除。
b、修改檔案/etc/udev/rules.d/70-persistent-net.rules,刪除之前eth0所在的行,將下一行eth1修改為eth0
c、reboot

7.Linux網絡卡配置檔案路徑是什麼?要使伺服器上外網,必須滿足的條件有哪些?需要配置什麼?
答:
網絡卡配置檔案路徑:/etc/sysconfig/network-scripts/ifcfg-eth*(*代表數字)
要上外網需要:能夠連結internet的網線(或無線)、有網絡卡
需要配置:IP、netmask、gateway、dns(自動或手動都ok,伺服器一般自動)

8.一般可以使用什麼軟體遠端linux伺服器?通過什麼上傳檔案和下載檔案?
答:
遠端連線linux的軟體:xshell、SecureCRT、putty、vnc(圖形化)
上傳和下載檔案:lrzsz、sftp

9./mnt目錄主要用於什麼?/root目錄跟root使用者有什麼關係?/根目錄與/boot目錄有什麼聯絡?
答:
/mnt一般用於掛載外接裝置
/root是一個目錄,是root使用者的家目錄
/boot目錄是/目錄下的一個子目錄

10.某一天誤操作,執行了rm-rf*,會有哪些情況發生?請舉例。
答:
a、如果當前目錄為"/tmp",那麼這個目錄下的東西會全部刪除(預設不包含隱藏檔案)
b、如果當前目錄為"/",那麼系統上的資料將會丟失,且無法啟動,系統崩潰(謹慎使用這個命令)
Linux命令及檔案操作
1.在/tmp/目錄下建立test.txt檔案,內容為:Hello,World!,用一個命令寫出來。
答:
echo "Hello,World!" > /tmp/test.txt

2.給test.txt檔案除所有者之外增加執行許可權,最終以數字寫出檔案的許可權。
答:
655
預設是644,可以通過"chmod 655 /tmp/test.txt"

3.用vi命令編輯test.txt,如何跳轉到末行,首行,行首、行末,如何在游標行下一行插入

   如何複製5行,刪除10行,查詢jingfeng的字元、把jingfeng替換為jfedu.net
答:
末行:G
首行:gg
行首:^(Shift+6)
行尾:$(Shift+4)
游標下插入一行:o
複製5行:5yy
刪除10行:10dd
替換::%s/jingfeng/jfedu.net/g

4.查詢linux系統下以txt結尾,30天沒有修改的檔案大小大於20K同時具有執行許可權的檔案並備份到/data/backup/目錄下。
答:
find / -name *txt -mtime +30 -type f -size +20k -perma= x -exec cp {} /data/backup/\;

5.當前test.txt所屬的使用者為root,組為abc,請將test.txt使擁有者為abc,組為root,寫出命令。
答:
chown abc:root test.txt

6.如何修改Linux啟動級別為字元模式並永久生效,如何臨時、永久關閉selinux及防火牆,請分別寫出操作方法。
答:
更改字元模式:修改/etc/inittab一行為id:3:initdefault:
臨時關閉selinnuxsetenforce0
臨時關閉防火牆iptables-F
永久關閉selinux修改/etc/selinux/config一行為SELINUX=permissive
永久關閉防火牆 iptables -F; /etc/init.d/iptablessave

7.每次開機在/tmp目錄下建立一個當天的日期資料夾(提示:當前日期表示的方法為:`date+%Y%m%d`)
答:
echo "mkdir/tmp/ `date+%Y%m%d`" >> /etc/rc.d/rc.local

8.如何檢視檔案內容,命令有哪些?檢視檔案第1行到3行,檢視檔案最後一行。
答:
檢視檔案內容:vim、cat、head、tail
檢視第1到行:head -3 file
檢視最後一行:tail -1 file

9.檢視linux伺服器IP的命令,同時只顯示包含ip所在的行打印出來。
答:
以eth0為例
只打印所在的行:ifconfig eth0 | grep "inetaddr:"
只打印ip:ifconfig eth0 | grep "inetaddr:" | awk -F: '{print$2}' | awk -F ' ' '{print$1}'

    http://blog.51cto.com/hujiangtao/1940375

10.將普通使用者test加入root組的命令是?
答:
usermod -G root test
描述Linux執行級別0-6的各自含義
0:關機模式

1:單使用者模式<==破解root密碼

2:無網路支援的多使用者模式

3:有網路支援的多使用者模式(文字模式,工作中最常用的模式)

4:保留,未使用

5:有網路支援的X-windows支援多使用者模式(桌面)

6: 重新引導系統,即重啟
解釋下什麼是GPL,GNU,自由軟體?
GPL:(通用公共許可證):一種授權,任何人有權取得、修改、重新發布自由軟體的權力。

GNU:(革奴計劃):目標是建立一套完全自由、開放的的作業系統。

自由軟體:是一種可以不受限制地自由使用、複製、研究、修改和分發的軟體。主要許可證有GPL和BSD許可證兩種。
如何選擇Linux作業系統版本?
一般來講,桌面使用者首選Ubuntu;伺服器首選RHEL或CentOS,兩者中首選CentOS。

根據具體要求:

①安全性要求較高,則選擇Debian或者FreeBSD。

②需要使用資料庫高階服務和電子郵件網路應用的使用者可以選擇SUSE。

③想要新技術新功能功能可以選擇Feddora,Feddora是RHEL和CentOS的一個測試版和預釋出版本。

④根據現有狀況,絕大多數網際網路公司選擇CentOS。現在比較常用的是6系列,現在市場佔有大概一半左右。另外的原因是CentOS更側重伺服器領域,並且無版權約束。
初學者在Linux系統的開機啟動項如何選擇?
建議選擇五個開機啟動項:

①.crond: 該服務用於週期地執行系統及使用者配置的計劃任務。有要週期性執行的任務計劃需要開啟,此服務是生產場景必須要用的一個軟體。

②.iptables: iptables包過濾防火牆,有外網IP時,考慮開啟。

③.network: 啟動系統時,若想啟用/關閉啟動時的各個網路介面,則應(必須)考慮開啟。

④.sshd: 遠端連線Linux伺服器時需要用到這個服務程式,所以必須要開啟,否則將無法遠端連線到Linux伺服器。

⑤.rsyslog: 是作業系統提供的一種機制,系統的守護程式通常會使用rsyslog將各種資訊收集寫入到系統日誌檔案中,CentOS6以前此服務的名字為syslog。

⑥.sysstat: 是一個軟體包,包含監測系統性能及效率的一組工具,這些工具對於Linux系統性能資料很有幫助,比如CPU使用率、硬碟和網路吞吐資料等,這些資料的分析,有利於判斷系統執行是否正常,所以它是提高系統執行效率、安全執行服務的助手。
描述Linux下軟連結和硬連結的區別
在Linux系統中,連結分為兩種,一種是硬連結(Hard link),另一種稱為符號連結或軟連結(Symbolic Link)。

①預設不帶引數的情況下,ln建立的是硬連結,帶-s引數的ln命令建立的是軟連結。

②硬連結檔案與原始檔的inode節點號相同,而軟連結檔案的inode節點號,與原始檔不同,

③ln命令不能對目錄建立硬連結,但可以建立軟連結。對目錄的軟連結會經常使用到。

④刪除軟連結檔案,對原始檔和硬連結檔案無任何影響。

⑤刪除檔案的硬連結檔案,對原始檔及軟連結檔案無任何影響。

⑥刪除連結檔案的原始檔,對硬連結檔案無影響,會導致其軟連結失效(紅底白字閃爍狀)。

⑦同時刪除原始檔及其硬連結檔案,整個檔案才會被真正的刪除。

⑧很多硬體裝置的快照功能,使用的就是類似硬連結的原理。

⑨軟連結可以跨檔案系統,硬連結不可以跨檔案系統。
生產場景如何對linux系統進行合理規劃分割槽?
分割槽的根本原則是簡單、易用、方便批量管理。根據伺服器角色定位建議如下:

①單機伺服器:如8G記憶體,300G硬碟

分割槽:  /boot 100-200M,swap 16G,記憶體大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db資料)

優點:資料盤和系統盤分開,有利於出問題時維護。

RAID方案:視資料及效能要求,一般可採用raid5折中。

②負載均衡器(如LVS等)

分割槽:/boot 100-200M,swap 記憶體的1-2倍,/  ,

優點:簡單方便,只做轉發資料量很少。

RAID方案:資料量小,重要性高,可採用RAID1

③負載均衡下的RS server

分割槽: /boot 100-200M,swap 記憶體的1-2倍,/

優點:簡單方便,因為有多機,對資料要求低。

RAID方案:資料量大,重要性不高,有效能要求,資料要求低,可採用RAID0

④資料庫伺服器mysql及oracle如16/32G記憶體

分割槽:/boot 100-200M,swap 16G,記憶體的1倍,/ 100G,/data 剩餘(存放db資料)

優點:資料盤和系統盤分開,有利於出問題時維護,及保持資料完整。

RAID方案:視資料及效能要求主庫可採取raid10/raid5,從庫可採用raid0提高效能(讀寫分離的情況下。)

⑤儲存伺服器

分割槽:/boot 100-200M,swap 記憶體的1-2倍,/ 100G,/data(存放資料)

優點:此伺服器不要分割槽太多。只做備份,效能要求低。容量要大。

RAID方案:可採取sata盤,raid5

⑥共享儲存伺服器(如NFS)

分割槽:/boot 100-200M,swap 記憶體的1-2倍,/ 100G,/data(存放資料)

優點:此伺服器不要分割槽太多。NFS共享比儲存多的要求就是效能要求。

RAID方案:視效能及訪問要求可以raid5,raid10,甚至raid0(要有高可用或雙寫方案)

⑦監控伺服器cacti,nagios

分割槽:/boot 100-200M,swap 記憶體的1-2倍,/

優點:重要性一般,資料要求也一般。

RAID方案:單盤或雙盤raid1即可。三盤就RAID5,看容量要求加盤即可。
描述Linux下檔案刪除的原理
Linux系統是通過link的數量來控制檔案刪除的,只有當一個檔案不存在任何link的時候,這個檔案才會被刪除。一般來說每個檔案兩個link計數器來控制i_count和i_nlink。
當一個檔案被一個程式佔用的時候i_count就加1。
當檔案的硬連結多一個的時候i_nlink也加1。
刪除一個檔案,就是讓這個檔案,沒有程序佔用,同時i_link數量為0。
VI編輯器的使用
①vi編輯器是linux系統下最最基本和最常用的標準文字編輯器。

②vi編輯器有三種工作模式:普通模式、編輯模式、命令模式。

③普通模式下的鍵盤輸入任何字元都是當作命令來執行的,也可以輸入命令進行游標的移動,字元、單詞、行的複製、粘帖以及刪除等操作。

④編輯模式主要用於文字的輸入。在該模式下,使用者輸入的任何字元都被作為檔案的內容儲存起來。

⑤命令模式下,使用者可以對檔案進行一些如字串查詢、替換、顯示行號等操作還是必須要進入命令模式的。

⑥在普通模式下輸入冒號即可進入命令模式,此時vi視窗的狀態行會顯示出冒號,等待使用者輸入命令。“i”插入模式,即可以進行編輯。使用者輸入完成後,按【Esc】之後編輯器又返回到普通模式下,在命令模式下,儲存退出,可以使用的命令為wq和x。前面加!表示強制退出,強制儲存等。
請簡單說出使用者管理的相關命令及用途
#組管理命令

groupadd #新增組

groupdel #刪除使用者組

groupmod #修改使用者組

groups  #顯示當前使用者所屬