初級運維(一)

發現逐個題目作效率過低,浪費時間,不如從新選題作!找命中機率最大的,作最有水準的題目,這算是這幾天的做業吧,挑戰快來了,不要被虐啊。其實狀態也很差,浪費了不少時間php


                                    初級運維(一)html

 

一、寫一個你最拿手的腳本?(命中率50%)前端

答:監控MySQL主從複製狀態的腳本,並郵件報警java

      1 #!/bin/bashnode

      2 #主從複製,在從服務器上寫腳本,天天定時0:00執行mysql

      3 #Author:Yue HongCailinux

      4 #2016-8-8ios

      5 nginx

      6 PORT=`netstat -an|grep "3306"|wc -lweb

      7 IP=`ifconfig eth0|grep "inet addr"|awk -F ":" '{print $2}'|awk '{print $1}'

      8 if [ $PORT -eq 1];then 

      9         echo "mysql server is running."

     10 else    

     11         mail -s "$IP mysql server 3306 not found!" 15706107661@163.com

     12 fi      

     13 

     14 STATUS=${mysql -uroot -p123456 -S /tmp/mysql.sock -e "show slave status \G"|grep -i running}

     15 IO_ENV=${echo $STATUS|grep IO |awk '{print $2}'}

     16 SQL_ENV=${echo $STATUS|grep SQL|awk '{print $2}'}

     17 

     18 if [ $IO_ENV=="Yes" -a $SQL_ENV=="Yes" ];then

     19         echo "the slave repliaction is running"

     20 else    

     21         echo "+++++$date++++">>/check_mysql.log

     22         echo "slave is down.">>/check_mysql.log

     23         mail -s "$IP mysql slave repliaction is not OK!" 15706107661@163.com << /check_mysql.log

     24 fi


二、apache編譯模塊都有什麼,功能是什麼?(太難,命中率10%)

答:配置apache反向代理,須要用到apache的mod_rewrite和mod_proxy模塊組


三、nagios的架構是什麼?(中檔題,命中率30%)

答:(1)nagios 進程對nagios.cfg主配置文件進行讀取,該配置文件中放存着一系列操做客戶端的配置信息。

(2)nagios 進程經過對相似於localhost.cfg的客戶端配置文件進行操做,服務端執行插件與被監控端的代理進行通訊,獲取監控結果和數據。

(3)nagios進程將監控結果寫入status.dat文件中,status.dat文件至關於日誌或數據庫

(4)cgi程序對status.dat文件中的監控結果進行分析,最終顯示在web界面中。

參考文檔:http://www.cnblogs.com/zhuhongbao/p/4174868.html


四、比較兩個文件,用什麼命令?(比較難,命中率20%)

答:cat file1 file2 | sort | uniq 取出兩個文件的交集(只留下同時存在於兩個文件中的文件)

cat file1 file2 | sort | uniq -d(repeated只輸出重複的行)

cat file1 file2 | sort | uniq –u 刪除交集,只留下其餘的行

cat file1 file2 | sort |uniq -c 對每行出現的次數進行統計並打印

##cat file1 file2 >1.txt,將兩個文件的內容整合一個文件中


五、apache配置文件裏查看域名指向(難,一時懵逼,不知道啥意思,命中率10%)

答:估計是想考rewrite重寫規則

兩個域名 www.abc.com   www.def.com如今須要操做 打開 www.def.com 跳轉到 www.abc.com

<VirtualHost *:80>

DocumentRoot /www/abc

php_admin_value open_basedir "/www/abc/tmp"

ServerName  www.abc.com

Serveralias abc.com www.def.com


RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.def.com [NC]

RewriteRule ^/(.*) http://www.abc.com/ [L]


ErrorLog "/www/logs/apache/abc.com-error.log"

CustomLog "/www/logs/apache/abc.com-access.log"common

Include  "/www/apache/conf/httpd-platform-com-proxy-ajp.conf"

Include "/www/apache/conf/httpd-platform-rewrite.conf"

</VirtualHost>  


六、一個EXT3的分區,使用touch text.file命令系統提示磁盤已滿,使用df -h命令查看磁盤大小時顯示只使用了60%的空間爲何?(中檔,30%)

答:用df -i查看INode使用狀況,可能由於因爲小文件過多,致使inode被耗盡,多是由於/tmp目錄有不少臨時文件,find /tmp -type f -exec rm {} \;或者遍歷尋找0字節的文件,並刪除。find /home -type f -size 0 -exec rm {} \;最後的辦法從新格式化某個分區

參考文檔:http://www.cnblogs.com/myjavawork/archive/2011/11/09/2242296.html


七、內存管理中active,inactive,used,freed,swap的涵義?(前面兩個沒據說過,30%)

答:結合cat /proc/meminfo和free -m

Active: 在活躍使用中的緩衝或緩存大小,Inactive: 在不常用中的緩衝或緩存的大小,

used:已用內存大小,free:空閒內存大小,swap:因物理內存不夠致使交換分區的大小


八、你認爲linux和windows的本質區別的什麼?(這個問題,我特麼還真就被問過,主要是臨場發揮我想不起來,回答地不夠吸引人,命中率50%)

答:(1)安全機制,好比iptables、TCP_Wrappers、以及服務自己的權限,重重關卡讓linux系統安全性有必定保障

(2)服務自己的穩定性,linux下應用服務的無端障工做時間好於windows,不管是從統計仍是運維人員口中都能得出的結果

(3)開源與不開源的問題,性質不一樣,一個是爲普通大衆用戶服務的,一個是爲專業人士服務的

(4)linux是分時多用戶多任務系統,而windows是單用戶系統


九、nagios怎麼短信報警?(我擦,這個問題,正是我須要搜索的,太難,有空細細研究,命中率50%)

答:下載飛信,在command.cfg中定義define command{},在templates.cfg中定義define contact{},最後從新啓動nagios。

參考文檔http://www.cnyunwei.com/portal.php?mod=view&aid=89493


十、我有一個文件夾裏面有不少文件,如何按時間排序,怎麼所有列出來?(仍是比較難,命中率50%)

答:使用sort -k命令,-k指定按第幾列關鍵字進行排序,咱們能夠知道時間是在哪一列,而後ll |sort -k 7


十一、把a.txt b.txt c.txt 壓縮到back.tar.gz,如何查看壓縮包裏面的文件(比較簡單,40%)

答:tar -zcvf back.tar.gz {a.txt,b.txt,c.txt}   tar -ztvf back.tar.gz 查看其中打包的文件 (-t即list)


十二、SMB服務器怎麼添加用戶?如何設置共享文件夾?(一口氣說出來不容易,命中率30%)

(1)、useradd 用戶

(2)、 smbpasswd -a 用戶

(3)、輸入密碼兩次。

(4)、而後 vi /etc/samba/smb.conf

[共享名]

comment = sales stuff

path = /var (共享路徑)

valid users = 用戶名

public = yes

writable = yes

printable = no

create mask = 0777

directory mask = 0777

最後重啓服務service smb restart


1三、介紹下nginx負載均衡(這個比較生疏啊,接觸很少,40%)

答:nginx能作反向代理和動靜分離,upstream目前支持5種方式的負載均衡調度分配算法 

1)、輪詢(默認) 每一個請求按時間順序逐一分配到不一樣的後端服務器,若是後端服務器down掉,能自動剔除。 

2)、weight 指定輪詢概率,weight和訪問比率成正比,用於後端服務器性能不均的狀況。 

3)、ip_hash 每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器,能夠解決session的問題。  

4)、fair(第三方) 按後端服務器的響應時間來分配請求,響應時間短的優先分配。  

5)、url_hash(第三方)

vi /usr/local/nginx/conf/nginx.conf

http {

include      mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

upstream myServer{

server www.linux.com:80;

server www.88181.com:8080;

}

server {

listen      80;

server_name  my22;

location / {

proxy_pass  http://myServer;

}

}

}

效果:輸入http://192.168.1.113/index.php以後,不停的刷新,你會發現,會在I'm the 8818一、I'm the linux

這兩個頁面之間來回交換,view會每刷新兩下增長一次,這也證實了前面所說的默認是輪訓的方式

參考文檔:http://www.linuxdiyf.com/linux/10205.html


1四、說出數據庫的幾種備份方法,並說出優缺點(說淺點行,40%)

答:(1)mysqldump備份 (2)mysqlhotcopy備份 (3)啓用二進制日誌(binlog)主從複製備份(4)rsync備份(5)cp拷貝文件(6)第三方工具如BigDump

從性質上來講分爲事務日誌備份、增量備份、徹底備份、差別備份

參考文檔:http://blog.csdn.net/enweitech/article/details/51612858


1五、簡述一下Nagios的安裝步驟(呵呵,問到這種問題,真的很無語,我尼瑪步驟那麼長!命中率50%)

答:(1)部署好LAMP環境,下載nagios源碼包,須要解壓並進入該nagios目錄,(2)./configure --prefix=/usr/local/nginx,make all ,make install ,make install-init,make install-config ,make install-commandmode ,make install-webconf(3)建立Nagios用戶和組,安裝nagios-plugin插件直接安裝./configrue &&make &&make install,(4)htpasswd -c /usr/loacl/nagios/etc/

htpasswd.users nagiosadmin(5)重啓apache和nagios,登陸http://IP/nagios/


1六、怎麼建立隱藏目錄?將已有的文件隱藏呢?(這個問題比較新穎啊,只知道隱藏文件用ls -a能夠看到.表示隱藏文件,命中率20%)

答:mkdir .test_dtr  ##在文件夾前面用一個.表示,估計創造隱藏文件也是這樣,若是是已有文件更名加點便可。


1七、當一個文件5分鐘沒有被修改,則給某個郵箱發郵件。用shell完成。(難,記不住命令,命中率50%)

答:#!/bin/bash

FILE=`find . mmin 5 -a -type f`   ##-mmin n 對文件數據的最近一次修改是在 n 分鐘以前

if [ ! -z $FILE ];then

mail -s "這個文件 $FILE 已經5分鐘沒有被修改了" 15706107661@163.com

fi

參考文檔:https://www.kafan.cn/edu/45424616.html


1八、sed awk grep find的區別 (這道題太容易考了,命中率80%)

答:sed:一行一行讀取的內容到內存中,匹配模式空間,若是知足條件則進行處理,若是不知足則讀取文本中的下一行繼續進行比對。那麼sed主要用來處理每行的

awk:讀取整行內容賦給$0,再根據分隔符,將每一列的值賦給$1,$2,知道最行一列$NF,最後進行打印,接着讀取下一行

grep:過濾文本中的某個字段,而且打印出含有該字段的整行內容。

find :用戶在某個目錄下查找,對系統消耗比較大


1九、nat與dr的區別?(常考,命中率60%) 

答:(1)nat是指通過負載均衡器,將數據包的目的IP地址改成真實服務器的IP地址,而且能夠適用於公網和私網環境,當數據包應答的時候會通過負載均衡器,從而成爲整個系統的瓶頸。

(2)而DR直接路由模式,請求報文通過負載均衡器,通過必定的調度算法,將數據包的目的MAC地址改成real server的MAC地址,而且全部真實服務器的環回網卡

上都共享VIP地址,忽略ARP應答,在應答報文的時候不須要負載調度器,從而能夠接受可多的併發請求,但只能用於私有網絡環境。


20、Mysql主從複製原理,以及mysql數據庫主從中關鍵的配置是什麼?(不難,越詳細越好,命中率50%)

答:Master具備IO線程,slave具備SQL線程和IO線程。

(1)在從服務器執行slave start,從服務器上IO線程會經過受權的用戶鏈接上master,並請求master從指定的文件和位置以後發送bin-log日誌內容。

(2)Master服務器接收到來自slave服務器的IO線程的請求後,master而後返回給slave相應的bin-log內容以及在binlog中的下一個指定更新位置。

(3)Slave的IO進程接收到信息後,將接收到的日誌內容依次添加到Slave端的relay-log文件的最末端,並將讀取到的Master端的bin-log的文件名和位置

記錄到master-info文件中,以便在下一次讀取的時候可以清楚的告訴Master"我須要從某個bin-log的哪一個位置開始日後的日誌內容,請發給我」;

(4)Slave的Sql進程檢測到relay-log中新增長了內容後,會立刻解析relay-log的內容成爲在Master端真實執行的命令,並將數據寫入磁盤。

關鍵步驟就是:master端受權和slave端指定master的IP地址以及同步的pos點:

change master to>

master_host='192.168.149.128'>

master_user='tongbu'>

master_password=’123456'>

master_log_ file=’mysq I一bin.000006'>

master_log_pos=98;


2一、訪問網站出現500錯誤,什麼緣由,舉出三種狀況,如何解決?(這題是讓說緣由,那就真難了,命中率40%)

答:(1)權限配置問題,文件沒有權限進行讀取,就會拋出這個錯誤,查看錯誤日誌能解決。

(2).htacess配置錯誤,一種是裏面語法有錯誤,一種是沒有取消註釋module_rewrite,而.htacess裏面卻進行了rewrite.

(3)虛擬主機配置文件有問題,試試用IP訪問看看


2二、tcpdump的使用,將從網段192.168.32.0/23發往本機80端口的數據監控下來(簡單,但也是考點,30%)

答:tcpdump tcp port 80 and net 192.168.1.0/24  ##若是是某臺主機host 192.168.1.1


2三、 nginx服務器發生502錯誤(只知道錯誤網關,不知道如何解決,30%)

答:Nginx 502 Bad Gateway的含義是請求的fastcgi已經執行,可是因爲某種緣由(通常是讀取資源的問題)沒有執行完畢而致使fastcgi進程終止

一般的出現狀況就是後端主機服務不可用或者系統宕機,PHP沒法進行,或超時

參考文檔:http://www.cnblogs.com/mybest/archive/2012/12/27/2836211.html


2四、分解文件a,以文件內的行數爲分割界限,每一個分割後的小文件內有2000行,分割後文件名爲a01,a02….a[N](此題新穎,不容易答出來,20%)

答:split -d -l 2000 a a ##-d(delimiter)選項能夠指定後綴爲數字,如00,01,02,第一個a表明文件名,第二個a表明新文件名的前綴爲a

參考文檔:http://www.jb51.net/LINUXjishu/115514.html


2五、把a目錄下的全部普通文件,移動到b目錄下,同時保證權限不變,如何操做?

答:#!/bin/bash

    for file in `ll /a`

do

if [ -f $file ];then

cp -p $file /b  ##-p (preserve)保持的意思

done

2六、Ddos***有幾種方式,都是怎麼作的防禦?(問DDOS***原理是倒容易,可是要問起方式,就不知道了,命中率30%)

答:SYN Flood,Smurf、TearDrop、ping of death等等,在最前端部署硬件防火牆,如華賽USG500、天泰防火牆

參考文檔:http://jingyan.baidu.com/article/7c6fb42848410480642c9023.html


2七、keepalived 和 heartbeat對比 (暫時沒研究這麼說,但萬一考到呢,30%)

答:Keepalived使用的vrrp協議方式,虛擬路由冗餘協議 ;Heartbeat是基於主機或網絡的服務的高可用方式;

keepalived的目的是模擬路由器的雙機,heartbeat的是用服務的雙機

lvs的高可用建議用keepavlived,業務的高可用使用heartbeat


2八、Nginx、Lvs、HAProxy負載均衡的區別,怎麼實現會話保持? (重量級題目,比較長,挑重點說,否則也記不住,命中率50%)

答:(1)Nginx:優勢:支持rewrite規則,對網絡帶寬要求不高,穩定性高,用於反向代理,宕機的機率極小,內置對後端服務器的端口檢測健康檢查功能。

    缺點:僅支持http、mail的負載均衡

會話保持機制:使用upstream模塊的ip_hash機制,將某個IP的請求固定定向到同一臺服務器上。

upstream backend {

ip_hash;

server 192.168.1.1:80;

server 192.168.1.2:80;

}

(2)LVS:優勢:抗負載能力強,工做在4層(接入層)僅做分發之用,沒有流量的產生,調度算法尤其豐富,配置簡單

 缺點:軟件自己不支持正則表達式處理,不能作動靜分離

  會話保持機制:利用persistence(單位爲秒)來設定會話保持時間。

(3)HAProxy:支持全透明代理,支持鏈接拒絕以便抗DDOS***,支持虛擬主機,自帶強大的監控服務器狀態的頁面。

缺點:暫時沒找到

會話保持機制:balance source 基於源地址的負載均衡

參考文檔:http://www.ha97.com/5646.html


2八、CDN原理和智能DNS(這是加分題啊,命中率50%)

答:CDN其實跟大多數緩存服務器原理相同,它是一種邊緣網絡,爲距離用戶最近的站點提供訪問,提升訪問速度

 (1)用戶向瀏覽器輸入域名,瀏覽器第一次發現本地沒有dns緩存,請求指向了CDN網絡中的智能DNS負載均衡系統;

 (2)智能DNS負載均衡系統解析域名,把對用戶響應速度最快的IP節點返回給用戶;

 (3)用戶向該IP節點(CDN服務器)發出請求;

 (4)因爲是第一次訪問,CDN服務器會向原web站點請求,並緩存內容;

 (5)請求結果發給用戶

智能DNS:因爲中國電信在北方,中國聯通在南方,形成南方用戶訪問電信服務器站點特別慢。因而提出智能DNS,若是你是聯通用戶,解析出聯通服務器的IP供你使用,它使用的是bind+view架構。值得一提的是,它是根據用戶請求所在地的本地DNS判斷是聯通用戶仍是電信用戶。


2九、一臺WEB服務器近三個月都比較穩定,今天忽然發現內存使用率很高,如何解決?(最愛考這種題了,命中率90%)

答:使用top命令,按下Shift+M鍵查看是什麼進程形成內存飆升的,憑經驗來講多是mysql的問題,檢查訪問日誌是否有惡意訪問。


30、編輯一個文件,root用戶,文件是隻讀方式,如何保存退出,普通用戶呢?(命令是真很差記,20%)

答:root:  wq!    普通用戶:w! sudo tee %


3一、將A 、B、C目錄下的文件A一、A二、A3文件,更名爲AA一、AA二、AA3.使用shell腳本實現。

答:#!/bin/bash

N=1

for dir in A B C

do

cd /$dir 

mv A$N AA$N

let N=N+1

cd ..

done


3二、系統調優參數列舉(難題啊,命中率40%)

答:通常是TCP參數,vi /etc/sysctl.conf

net.ipv4.tcp_fin_timeout=30  ##若是套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT2狀態的時間

net.ipv4.tcp_keepalive_time=3200  ##保持長鏈接的時間

net.ipv4.tcp_syncookies=1  ##當出現SYN等待隊列溢出時,啓用cookie來處理,可防範少許的SYN***

net.ipv4.tcp_max_syn_backlog=8192 ##表示SYN隊列的長度

net.ipv4.tcp_max_tw_buckets=5000 ##系統保持TIME_WAIT套接字的最大數量

sysctl -p ##配置參數生效


3三、取出*.log日誌文件中第七列和第九列,經過IP進行排序。

答:awk -F ":" '{print $7,$9}' *.log |sort -k 1 |sort -nr

 

3四、cacti的日誌在哪? 

答:/var/www/htm/cacti/log

相關文章
相關標籤/搜索