Linux運維面試題解答

標籤:Linux運維面試題解答php

一、DNS使用的端口號和協議,簡單描述一下DNS正向解析和反向解析的工做原理和做用還有應用場景?html

DNS使用node

DNS使用的端口號是53,封裝協議udp。正向解析是指域名到IP地址的解析過程。反向解析是從IP地址到域名的解析過程,它的做用就是經過查詢IP地址的PTR記錄來獲得該IP地址指向的域名。PTR (Pointer Record),指針記錄,是電子郵件系統中的一種數據類型,被互聯網標準文件RFC1035所定義。與其相對應的是A記錄、地址記錄。兩者組成郵件交換記錄。A記錄解析名字到地址,而PTR記錄解析地址到名字,地址是指一個客戶端的IP地址,名字是指一個客戶的徹底合格域名。PTR記錄被用於電子郵件發送過程當中的反向地址解析。使用了域名反向解析後,就能夠大大下降垃圾郵件的數量。mysql


2.編寫IPTABLES使用內網某臺機器的80端口能夠在公網訪問,假設公網IP爲10.10.1.1 ,實現192.168.1.0/24段的NAT.       
linux


iptables -A INPUT -p tcp --dport 80 -j ACCEPT   #容許80端口訪問ios

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.10.1.1nginx



3.舉出三個以上的主流WEB服務器,並簡述他們的特性和優缺點不限操做系統?
web


Apache、Nginx、IIS、tomcat、lighttpd等面試

特色沒啥好說的,PHP和靜態用Nginx,JAVE用tomcat算法



4,舉出兩個主流代理服務器,簡述工做模式和優缺點?


Nginx、Squid



5,舉出兩個負載均衡的軟件,並簡述工做模式和優缺點?


Nginx、LVS、HAproxy



6,IE,FF,chrome瀏覽器最大併發請求數是多少?


當咱們在瀏覽網頁的時候,對瀏覽速度有一個重要的影響因素,就是瀏覽器的併發數量。併發數量簡單通俗的講就是,當瀏覽器網頁的時候同時工做的進行數量。 若是同時只有2個併發鏈接數數量,那網頁打開的時候只能依賴於這2條線程,前面若是有打開慢的內容,就會直接影響到後面的內容打開。可是若是同時有更多的併發鏈接數,這樣就會大大的提升網頁加載速度。IE十一、FF、chrome默認都爲6,併發鏈接數也能夠本身修改的。

參考文章:http://www.iefans.net/liulanqi-zuida-bingfa-lianjieshu/



7,mysql數據庫備份種類有哪些,依據數據庫的狀態可分爲哪些備份,備份工具備哪些,部署一個高可用mysql應用 環境,並說明他的高可用性?


按照要備份的數據集合的範圍可分爲徹底備份、部分備份、增量備份、差別備份

按照數據備份方式可分爲物理備份和邏輯備份,物理備份通常就是經過tar,cp等命令直接打包複製數據庫的數據文件達到備份的效果,邏輯備份通常就是經過特定工具從數據庫中導出數據並另存備份(邏輯備份會丟失數據精度)

按照數據庫的狀態可分爲熱備份、溫備份、冷備份

熱備份指的是當數據庫進行備份時,數據庫的讀寫操做均不是受影響 

溫備份指的是當數據庫進行備份時,數據庫的讀操做能夠執行, 可是不能執行寫操做 
冷備份指的是當數據庫進行備份時,數據庫不能進行讀寫操做, 即數據庫要下線

MySQL備份工具:mysqldump、mysqlhotcopy 、kvm快照備份、tar工具有份、xtrabackup工具有份(只支持InnoDB存儲引擎)等

MySQL的高可用方案,咱們公司如今採用的是Heartbeat+DRBD的方案,也有推薦使用mycat的,尚未用過,這裏就不展開說了。



8,什麼是裸設備,他的好處是什麼?,mysql支持裸設備嗎?


裸設備:也叫裸分區(原始分區),是一種沒有通過格式化,不被Unix/Linux經過文件系統來讀取的特殊字符設備。裸設備能夠綁定一個分區,也能夠綁定一個磁盤。

好處:由於使用裸設備避免了再通過操做系統這一層,數據直接從Disk到數據庫進行傳輸,因此使用裸設備對於讀寫頻繁的數據庫應用來講,能夠極大地提升數據庫系統的性能。固然,這是以磁盤的 I/O 很是大,磁盤I/O已經成爲系統瓶頸的狀況下才成立。若是磁盤讀寫確實很是頻繁,以致於磁盤讀寫成爲系統瓶頸的狀況成立,那麼採用裸設備確實能夠大大提升性能,最大甚至能夠提升至40%,很是明顯。 

mysql支持裸設備



9,若是給你一個100g的INNODB類型數據庫,你會用什麼備份方案來作備份。


Xtrabackup

1,Xtrabackup是什麼

Xtrabackup是一個對InnoDB作數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。

Xtrabackup有兩個主要的工具:xtrabackup、innobackupex

一、xtrabackup只能備份InnoDB和XtraDB兩種數據表,而不能備份MyISAM數據表

二、innobackupex是參考了InnoDB Hotbackup的innoback腳本修改而來的.innobackupex是一個perl腳本封裝,封裝了xtrabackup。主要是爲了方便的同時備份InnoDB和MyISAM引擎的表,但在處理myisam時須要加一個讀鎖,而且加入了一些使用的選項,如slave-info能夠記錄備份恢復後,做爲slave須要的一些信息,根據這些信息,能夠很方便的利用備份來重作slave。

2,Xtrabackup能夠作什麼 :

在線(熱)備份整個庫的InnoDB、 XtraDB表
在xtrabackup的上一次整庫備份基礎上作增量備份(innodb only)
以流的形式產生備份,能夠直接保存到遠程機器上(本機硬盤空間不足時頗有用)

MySQL數據庫自己提供的工具並不支持真正的增量備份,二進制日誌恢復是point-in-time(時間點)的恢復而不是增量備份。
Xtrabackup工具支持對InnoDB存儲引擎的增量備份,工做原理以下:

(1)首先完成一個徹底備份,並記錄下此時檢查點的LSN(Log Sequence Number)。

(2)在進程增量備份時,比較表空間中每一個頁的LSN是否大於上次備份時的LSN,若是是,則備份該頁,同時記錄當前檢查點的LSN。
首 先,在logfile中找到並記錄最後一個checkpoint(「last checkpoint LSN」),而後開始從LSN的位置開始拷貝InnoDB的logfile到xtrabackup_logfile;接着,開始拷貝所有的數據文件.ibd;在拷貝所有數據文件結束以後,才中止拷貝logfile。
由於logfile裏面記錄所有的數據修改狀況,因此,即時在備份過程當中數據文件被修改過了,恢復時仍然可以經過解析xtrabackup_logfile保持數據的一致。



10,寫一個簡單的shell腳本,腳本運行時讓CTRL+C沒法中斷的該shell腳本?


在腳本里加入trap "" SIGINT 或 trap "" 2 以忽略SIGINT信號



十一、具體說說cacti/nagios 的安裝過程?cacti如何監控mysql?


我在平常工做中都是使用腳本一鍵安裝,如下引用原帖答案:


cacti安裝步驟:首先安裝好lamp環境(建議都使用編譯安裝)和snmp服務,rrdtool工具安裝,而後創建cacti庫和登陸mysql帳號,並賦權;其次下載並解壓cacti到web server的htdocs或html目錄下,確保敲入http://IP:port/cacti能被訪問到,進而在web上安裝cacti,修改web頁面上的snmp團體字,確保跟snmpd.conf的團體字一致,而後再手動執行php poller.php看看可否在rra目錄下生成.rrd文件,默認只監控本機資源,將php.poller.php命令寫入到crontab中,每5分鐘執行一次,若是須要監控遠程主機,須要在對方主機安裝snmp服務,而且保證snmp的團體字與監控主機上的snmp團體字是一致的;最後,添加其餘監控主機,添加模板,安裝插件等一系列工做。


nagios安裝步驟:首先一樣安裝好lamp環境(建議使用編譯安裝),而後下載並安裝nagios和nagios-plugin,整合apache和naigos,並建立web登陸帳號驗證,確保敲入http://IP:port/nagios能正常訪問並登陸,遠程主機安裝nrpe或NClient++;最後添加配置遠程主機信息,報警功能實現,添加所需的監控指標等工做。

cacti監控mysql:首先到cacti的論壇上下載cacti監控mysql的模板,而後導入到cacti中,而後添加主機,選擇應用模板,最後等待5分鐘,看看是否監控正常。



十二、sed和awk命令的區別?


  1. awk適合按列(域)操做,sed適合按行操做

  2. awk適合對文件的抽取整理,sed適合對文件的編輯

  3. 若是文件是格式化的,即由分隔符分爲多個域的,優先使用awk

  4. awk更爲強大,支持數組、循環等,甚至能夠看做是一門編程語言,內部語法相似C語言

  5. sed是一個流編輯器,它的強大之處在於能夠以行的方式來腳本化處理文本,而且語法相對awk來講更爲簡單,它的功能就是增刪改查,但它畢竟不是編程語言,沒有循環、數組等邏輯,因此,sed一般和awk一塊兒使用,它們恰好互補,一塊兒使用構成了文本處理的兩個利器



1三、如何更改linux主機名?


編輯配置文件 /etc/sysconfig/network    

更改HOSTSNAME,保存退出後重啓生效;



1四、登陸linux,咱們除了使用密碼驗證,還可使用哪一種方式?簡述配置過程。


使用密鑰登陸,客戶端生成公鑰和私鑰,客戶端保存私鑰,公鑰複製到遠程linux主機,登陸時使用密鑰登陸,配置過程略



1五、如何給grub加密碼(明文、密文),密文加密又分紅哪幾種?         


grub明文加密和密文加密惟一的區別在於password 加不加--md5參數,明文則不加,若是是密文,要加,並且須要先用命令grub-md5-crypt計算密碼的md5值,用這個md5值代替明文的密碼,編輯/etc/grub.conf

1) 單純對GRUB界面加密,而不對被引導的系統加密 在timeout一行下面加一行: password --md5 PASSWORD 


2) 對GRUB界面加密,同時對被引導的
系統加密 在timeout一行下面加一行: password --md5 PASSWORD ,在title一行下面加一行: lock 

3) 同時存在多個被引導系統,針對特定的系統實例分別加密(未對GRUB操做界面加密) 在title一行下面加一行: lock ,在lock一行下面緊貼着再加一行: password --d5 PASSWORD 注:lock不能單獨使用。


1六、如何用yum安裝/刪除一個軟件包?如何查看某個軟件包是否已經安裝


yum install

yum localinstall   安裝本地rpm包

yum remove 

rpm -qa 軟件包名  或 rpm -qa | grep  



1七、如何查看系統版本?(3個方法)


查看系統或內核版本:

cat /etc/redhat-release 或 cat /etc/centos-release 

lsb_release -a 

uname -a

cat /etc/issue

cat /proc/version



1八、find 找出 當前目錄下的 目錄和普通文件? 找出當前目錄下10天沒有改變,大小大於4K的普通文件或目錄


find . -type d -o -type f

find . -type d -o -type f -size +4k -mtime +10 



1九、在當前目錄下建立一個名字爲1的目錄 的命令?  建立級聯目錄 ./2/3/的命令? 一條命令建立級聯目錄 ./1/2/3和./1/2/4?


mkdir 1 

mkdir -p ./2/3/

mkdir -p ./1/2/{3,4}


20、cp一個目錄中的文件須要什麼權限,mv呢?touch呢?rm呢?


cp一個目錄中的文件,須要對這個目錄有x權限,對這個文件有r權限

mv、touch、rm,都須要對這個目錄有w和x權限,對文件權限沒有要求



2一、用cat如何向文件裏重定向字符串


cat >> test.txt << EOF  (以EOF爲結束符,能夠換成別的)

>1111111111

>2222222222

>EOF



2二、創建一個公共目錄/opt/public,要求每一個用戶均可以建立文件和目錄,但只能本身本人和root能夠刪除;


mkdir /opt/public

chmod 1777 /opt/public


一、如何檢測某個端口所佔用的進程


lsof -i :port



二、對於linux主機的cpu負載使用,什麼狀況下user的比例升高,什麼狀況下system的比例升高,請聯繫實際舉例。


使用top命令能夠查看cpu的負載使用

-us:用戶進程消耗的CPU時間百分比
us的值比較高時,說明用戶進程消耗的CPU資源多,若是長期超50%的使用,那麼咱們就該考慮優化程序算法或者進行加速(好比PHP/PERL)

-sy:內核進程消耗的CPU時間百分比(sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由)

-wa:IO等待消耗的CPU時間百分比
wa的值高時,說明IO等待比較嚴重,這可能因爲磁盤大量隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)
-id:CPU處於空閒狀態時間百分比,若是空閒時間(cpu id)持續爲0而且系統時間(cpu sy)是用戶時間的兩倍(cpu us) 系統則面臨着CPU資源的短缺



三、在不umount的狀況下,如何從新設置mount的參數。


mount -o remount,rw /



四、不當心在系統下執行了chmod -x /bin/chmod 怎麼辦?


mv /bin/chmod /bin/chmod_backup

cp /bin/cp /bin/chmod

cat /bin/chmod_backup > /bin/chmod



五、linux文件的權限位x對目錄和文件有何不一樣?


x權限對目錄而言,表示這個用戶能夠進入該目錄(瀏覽,便可以ls列出目錄下的東西)

   對文件而言,表示對文件有可執行權限


 

六、找出/taomee目錄下的全部常規文件並設置權限755


find /taomee -type f | xargs chmod 755



七、如何查找某一文件被哪一個進程打開?


好比查看/usr/bin/mysqld_safe這個文件是被哪一個進程打開的,可使用命令:

lsof /usr/bin/mysqld_safe



八、新增一塊存儲設備,lvm操做的命令如何寫


一、對新的存儲設備分區並格式化爲8e格式

二、建立物理卷(PV)

三、將PV加入到卷組(VG)

四、建立邏輯卷(LV)

五、格式化羅技卷並掛載

參考:http://yujia2016.blog.51cto.com/59379/1712579



九、給主機host:172.16.0.2增長gateway10.0.0.1


route add -host 172.16.0.2 gw 10.0.0.1



十、socket和tcp訪問mysql的區別?


TCP/IP 訪問mysql:這種方式會在TCP/IP鏈接上創建一個基於網絡的鏈接請求,通常是client鏈接跑在Server上的MySQL實例,2臺機器經過一個TCP/IP 網絡鏈接。(通常是mysql客戶端跟服務端不在同一機器上)

socket訪問mysql:UNIX域套接字並非網絡協議,因此只能在MySQL客戶端和數據庫實例在同一臺服務器上使用,用戶能夠在配置文件中指定套接字文件。



2、shell

一、如何將一個文件中的taomee、******、peoplenet中的*內容進行替換成network(*的內容不一樣)


[root@Manager-01 ~]# cat 1.txt 

taomee、sdegrt、peonetwork

[root@Manager-01 ~]# sed -ri 's#(.*)、.{6}、(.*)#\一、network、\2#g' 1.txt

[root@Manager-01 ~]# cat 1.txt 

taomee、network、peonetwork


二、找出access.log中訪問top 10的ip地址


awk '{print $1}' nginx.log | grep -v "^$" | sort | uniq -c | sort -nr | head 



三、打印1-100奇數?打印1-100偶數?打印1-100的和?打印1-100的奇數和?打印1-100的偶數和?打印1-100的質數?


打印1-100奇數:for((i=1;i<=100;i+=2));do echo $i;done

打印1-100偶數:for((i=2;i<=100;i+=2));do echo $i;done
打印1-100和:sum=0;for((i=1;i<=100;i++));do let sum+=i;done;echo $sum 

打印1-100的奇數和:sum=0;for((i=1;i<=100;i+=2));do let sum+=i;done;echo $sum 

打印1-100的偶數和:sum=0;for((i=2;i<=100;i+=2));do let sum+=i;done;echo $sum 

打印1-100的質數:for i in `seq 2 100`; do factor $i | awk -F'[: ]+' 'NF==2{print $1}';done



四、刪除一個文件中行號爲奇數的行


sed -n '1~2p' file  或 sed -n 'p;n' file



五、替換某一個文件的字符串


sed -i 's/111/222/g' test.txt

或vim test

:%s/111/222/g


六、exec和souce區別


所謂 source 就是讓 script 在當前 shell 內執行、而不是產生一個 sub-shell 來執行。

 exec 也是讓 script 在同一個行程上執行,可是原有行程則被結束了。

他們的最大區別就是在於:原有行程會否終止。


七、iptables表和鏈


簡稱三表五鏈

filter:INPUT FOWARD OUTPUT

nat:OUTPUT PREROUTING POSTROUTING

mangle:INPUT FOWARD OUTPUT PREROUTING POSTROUTING


八、統計目錄inode佔用數目  


for i in `find . -type d`;do ls -1i $i |awk -v sum=0 -v dir=$i '{sum+=!a[$1]++};END{print sum"\t"dir}';done |sort -n

相關文章
相關標籤/搜索