合格linux運(yùn)維人員必會(huì)的30道shell編程面試題及講解

超深度講解shell高級(jí)編程實(shí)戰(zhàn),截至目前shell編程課程國(guó)內(nèi)培訓(xùn)機(jī)構(gòu)最細(xì)的課程,不信請(qǐng)看學(xué)員表現(xiàn)的水平。

課程牛不牛,不是看老師、課表,而是看培養(yǎng)的的學(xué)生水平,目前全免費(fèi)中伙伴們趕緊看啊。

http://edu.51cto.com/course/course_id-5257.html

企業(yè)合格的linux運(yùn)維必會(huì)編程題,能獨(dú)立完成的同學(xué)就業(yè)工資不會(huì)低于12K

這是老男孩linux運(yùn)維班要求學(xué)生必會(huì)的題目,完不成的不能合格畢業(yè),每個(gè)完成的都獎(jiǎng)勵(lì)價(jià)值500-1000元的等值禮物(以當(dāng)天考試成績(jī)宣布為準(zhǔn)),要進(jìn)要退自己抉擇,伙伴們走起!

實(shí)戰(zhàn)考試時(shí)間就在2016年1月15日上機(jī)實(shí)戰(zhàn),禁止大面積抄襲學(xué)習(xí)課堂筆記否則無(wú)獎(jiǎng)勵(lì)!
共21道考試題,面授上課幾乎全部講解過(guò)類(lèi)似的案例,考試題略微變更而已。

企業(yè)面試題1:(生產(chǎn)實(shí)戰(zhàn)案例):監(jiān)控MySQL主從同步是否異常,如果異常,則發(fā)送短信或者郵件給管理員。提示:如果沒(méi)主從同步環(huán)境,可以用下面文本放到文件里讀取來(lái)模擬: 階段1:開(kāi)發(fā)一個(gè)守護(hù)進(jìn)程腳本每30秒實(shí)現(xiàn)檢測(cè)一次。
階段2:如果同步出現(xiàn)如下錯(cuò)誤號(hào)(1158,1159,1008,1007,1062),則跳過(guò)錯(cuò)誤。
階段3:請(qǐng)使用數(shù)組技術(shù)實(shí)現(xiàn)上述腳本(獲取主從判斷及錯(cuò)誤號(hào)部分)

[root@oldboy~]# mysql -uroot -p'oldboy' -S /data/3307/mysql.sock -e "show slavestatus\G;"
*************************** 1\. row ***************************
               Slave_IO_State:Waiting for master to send event
                  Master_Host:10.0.0.179   #當(dāng)前的mysql master服務(wù)器主機(jī)
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File:mysql-bin.000013
         Read_Master_Log_Pos: 502547
               Relay_Log_File:relay-bin.000013
                Relay_Log_Pos:251
        Relay_Master_Log_File:mysql-bin.000013
             Slave_IO_Running:Yes
           Slave_SQL_Running: Yes
              Replicate_Do_DB: 
         Replicate_Ignore_DB: mysql
          Replicate_Do_Table: 
      Replicate_Ignore_Table: 
     Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
         Exec_Master_Log_Pos: 502547
              Relay_Log_Space:502986
              Until_Condition:None
               Until_Log_File: 
                Until_Log_Pos: 0
          Master_SSL_Allowed: No
          Master_SSL_CA_File: 
          Master_SSL_CA_Path: 
              Master_SSL_Cert: 
           Master_SSL_Cipher: 
               Master_SSL_Key: 
       Seconds_Behind_Master: 0   #和主庫(kù)比同步延遲的秒數(shù),這個(gè)參數(shù)很重要
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error:

企業(yè)面試題2: 使用for循環(huán)在/oldboy目錄下通過(guò)隨機(jī)小寫(xiě)10個(gè)字母加固定字符串oldboy批量創(chuàng)建10個(gè)html文件,名稱(chēng)例如為:

[root@oldboy oldboy]# sh /server/scripts/oldboy.sh
[root@oldboy oldboy]# ls 
coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html  vioesjmcbu_oldboy.html
gmkhrancxh_oldboy.html  tmdjormaxr_oldboy.html  wzewnojiwe_oldboy.html
jdxexendbe_oldboy.html  ugaywanjlm_oldboy.html  xzzruhdzda_oldboy.html
qcawgsrtkp_oldboy.html  vfrphtqjpc_oldboy.html

企業(yè)面試題3:請(qǐng)用至少兩種方法實(shí)現(xiàn)! 將以上文件名中的oldboy全部改成oldgirl(用for循環(huán)實(shí)現(xiàn)),并且html改成大寫(xiě)。

企業(yè)面試題4: 批量創(chuàng)建10個(gè)系統(tǒng)帳號(hào)oldboy01-oldboy10并設(shè)置密碼(密碼為隨機(jī)8位字符串)。

企業(yè)面試題5: 寫(xiě)一個(gè)腳本,實(shí)現(xiàn)判斷10.0.0.0/24網(wǎng)絡(luò)里,當(dāng)前在線用戶的IP有哪些(方法有很多)

企業(yè)實(shí)戰(zhàn)題6:請(qǐng)用至少兩種方法實(shí)現(xiàn)! 寫(xiě)一個(gè)腳本解決DOS***生產(chǎn)案例
提示:根據(jù)web日志或者或者網(wǎng)絡(luò)連接數(shù),監(jiān)控當(dāng)某個(gè)IP并發(fā)連接數(shù)或者短時(shí)內(nèi)PV達(dá)到100,即調(diào)用防火墻命令封掉對(duì)應(yīng)的IP,監(jiān)控頻率每隔3分鐘。防火墻命令為:iptables -I INPUT -s 10.0.1.10 -j DROP。

答案見(jiàn)https://blog.51cto.com/oldboy/2141081

企業(yè)實(shí)戰(zhàn)題7: 開(kāi)發(fā)mysql多實(shí)例啟動(dòng)腳本:
已知mysql多實(shí)例啟動(dòng)命令為:mysqld_safe--defaults-file=/data/3306/my.cnf &
停止命令為:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sockshutdown
請(qǐng)完成mysql多實(shí)例啟動(dòng)啟動(dòng)腳本的編寫(xiě)
要求:用函數(shù),case語(yǔ)句、if語(yǔ)句等實(shí)現(xiàn)。

開(kāi)發(fā)MySQL單實(shí)例專(zhuān)業(yè)腳本答案見(jiàn)https://blog.51cto.com/oldboy/2124950

企業(yè)實(shí)戰(zhàn)題8:如何實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行分庫(kù)備份,請(qǐng)用腳本實(shí)現(xiàn)

企業(yè)實(shí)戰(zhàn)題9:如何實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行分庫(kù)加分表備份,請(qǐng)用腳本實(shí)現(xiàn)

企業(yè)面試題10:請(qǐng)用至少兩種方法實(shí)現(xiàn)! bash for循環(huán)打印下面這句話中字母數(shù)不大于6的單詞(昆侖萬(wàn)維面試題)。
I am oldboy teacher welcome to oldboy training class.

**企業(yè)面試題11:****開(kāi)發(fā)shell腳本分別實(shí)現(xiàn)以腳本傳參以及read讀入的方式比較2個(gè)整數(shù)大小。以屏幕輸出的方式提醒用戶比較結(jié)果。注意:一共是開(kāi)發(fā)2個(gè)腳本。當(dāng)用腳本傳參以及read讀入的方式需要對(duì)變量是否為數(shù)字、并且傳參個(gè)數(shù)做判斷。** 

企業(yè)面試題12:打印選擇菜單,一鍵安裝Web服務(wù):

[root@oldboyscripts]# sh menu.sh

1.[install lamp]

2.[install lnmp]

3.[exit]

pls input the num you want:

要求:

1、當(dāng)用戶輸入1時(shí),輸出“startinstalling lamp.”然后執(zhí)行/server/scripts/lamp.sh,腳本內(nèi)容輸出"lampis installed"后退出腳本;

2、當(dāng)用戶輸入2時(shí),輸出“startinstalling lnmp.”然后執(zhí)行/server/scripts/lnmp.sh輸出"lnmpis installed"后退出腳本;

3、當(dāng)輸入3時(shí),退出當(dāng)前菜單及腳本;

4、當(dāng)輸入任何其它字符,給出提示“Input error”后退出腳本。

5、要對(duì)執(zhí)行的腳本進(jìn)行相關(guān)條件判斷,例如:腳本是否存在,是否可執(zhí)行等。

企業(yè)面試題13:

1、監(jiān)控web服務(wù)是否正常,不低于3種監(jiān)控策略。

2、監(jiān)控db服務(wù)是否正常,不低于3種監(jiān)控策略。
要求間隔1分鐘,持續(xù)監(jiān)控。

企業(yè)面試題14:監(jiān)控memcache服務(wù)是否正常,模擬用戶(web客戶端)檢測(cè)。

使用nc命令加上set/get來(lái)模擬檢測(cè),以及監(jiān)控響應(yīng)時(shí)間及命中率。

企業(yè)面試題15****:面試及實(shí)戰(zhàn)考試題:監(jiān)控web站點(diǎn)目錄(/var/html/www)下所有文件是否被惡意篡改(文件內(nèi)容被改了),如果有就打印改動(dòng)的文件名(發(fā)郵件),定時(shí)任務(wù)每3分鐘執(zhí)行一次(10分鐘時(shí)間完成)。

企業(yè)面試題16:企業(yè)案例:寫(xiě)網(wǎng)絡(luò)服務(wù)獨(dú)立進(jìn)程模式下rsync的系統(tǒng)啟動(dòng)腳本

例如:/etc/init.d/rsyncd{start|stop|restart} 。
要求:
1.要使用系統(tǒng)函數(shù)庫(kù)技巧。
2.要用函數(shù),不能一坨SHI的方式。
3.可被chkconfig管理。

企業(yè)面試題17:老男孩教育****天津項(xiàng)目學(xué)生實(shí)踐抓鬮題目:

好消息,老男孩培訓(xùn)學(xué)生外出企業(yè)項(xiàng)目實(shí)踐機(jī)會(huì)(第6次)來(lái)了(本月中旬),但是,名額有限,隊(duì)員限3人(班長(zhǎng)帶隊(duì))。

因此需要挑選學(xué)生,因此需要一個(gè)抓鬮的程序:

要求:

1、執(zhí)行腳本后,想去的同學(xué)輸入英文名字全拼,產(chǎn)生隨機(jī)數(shù)01-99之間的數(shù)字,數(shù)字越大就去參加項(xiàng)目實(shí)踐,前面已經(jīng)抓到的數(shù)字,下次不能在出現(xiàn)相同數(shù)字。

2、第一個(gè)輸入名字后,屏幕輸出信息,并將名字和數(shù)字記錄到文件里,程序不能退出繼續(xù)等待別的學(xué)生輸入
答案:https://blog.51cto.com/oldboy/1308647

企業(yè)面試題18:老男孩linux企業(yè)面試題:

已知下面的字符串是通過(guò)RANDOM隨機(jī)數(shù)變量md5sum|cut-c 1-8截取后的結(jié)果,請(qǐng)破解這些字符串對(duì)應(yīng)的md5sum前的RANDOM對(duì)應(yīng)數(shù)字?

21029299

00205d1c

a3da1677

1f6d12dd

890684b

企業(yè)面試題19:批量檢查多個(gè)網(wǎng)站地址是否正常

要求:shell數(shù)組方法實(shí)現(xiàn),檢測(cè)策略盡量模擬用戶訪問(wèn)思路

http://www.etiantian.org

http://www.taobao.com

http://oldboy.blog.51cto.com

http://10.0.0.7

企業(yè)面試題20(中企動(dòng)力):****:用shell處理以下內(nèi)容

1、按單詞出現(xiàn)頻率降序排序!

2、按字母出現(xiàn)頻率降序排序!

The months of learning in Old Boy education are the few months that I think the time efficient is the most.I had also studied at other training institutions before, but I was hard to understand what the tutor said and hard to follow. It was just too much to learn with no outline.

(我認(rèn)為在老男孩教育中學(xué)習(xí)的幾個(gè)月是時(shí)間效率最高的幾個(gè)月。我之前也在其他培訓(xùn)機(jī)構(gòu)學(xué)習(xí)過(guò),但是我很難理解導(dǎo)師說(shuō)了什么,也很難跟上。沒(méi)有大綱,學(xué)起來(lái)太難了。)

答案:

https://mp.weixin.qq.com/s?__biz=MzAxOTE5NjQwOA==&mid=2650114764&idx=1&sn=d0b3471f3764f0d3c634ed4cf960ccdc&chksm=83cb9a5bb4bc134d92eaee21f2215d4875f654bff5f47ae076f9cb80a70073919ee5af629b04&mpshare=1&scene=23&srcid=0705hLsan6oqQMKYBZ5CGI1S#rd

企業(yè)面試題21:輸出正方形、等腰三角形、直角梯形,見(jiàn)如下內(nèi)容

http://oldboy.blog.51cto.com/2561410/1718607

****企業(yè)面試題22:開(kāi)發(fā)通過(guò)web界面展示監(jiān)控Nginx代理節(jié)點(diǎn)狀態(tài),效果圖如下。****

答案:https://blog.51cto.com/oldboy/1589685

lvs+keepalived集群部分Shell企業(yè)案例:

企業(yè)面試題23、【LVS主節(jié)點(diǎn)】手工開(kāi)發(fā)ipvsadm管理lvs的腳本ip_vs

實(shí)現(xiàn):/etc/init.d/lvs {start|stop|restart}

企業(yè)面試題****24、【LVS主節(jié)點(diǎn)】模擬keepalived健康檢查功能管理LVS節(jié)點(diǎn),

當(dāng)節(jié)點(diǎn)掛掉(檢測(cè)2次,間隔2秒)從服務(wù)器池中剔除,好了(檢測(cè)2次,間隔2秒)加進(jìn)來(lái)

提示:利用ipvsadm命令實(shí)現(xiàn)添加和減少LVS節(jié)點(diǎn)。

企業(yè)面試題25、【LVS客戶端節(jié)點(diǎn)】開(kāi)發(fā)LVS客戶端設(shè)置VIP以及抑制ARP的管理腳本

實(shí)現(xiàn):/etc/init.d/lvsclient {start|stop|restart}

企業(yè)面試題26、【LVS備節(jié)點(diǎn)】模擬keepalved vrrp功能,監(jiān)聽(tīng)主節(jié)點(diǎn),如果主節(jié)點(diǎn)不可訪問(wèn)則備節(jié)點(diǎn)啟動(dòng)并配置LVS實(shí)現(xiàn)接管主節(jié)點(diǎn)的資源提供服務(wù)(提醒:注意ARP緩存)

企業(yè)面試題27、請(qǐng)用shell或Python編寫(xiě)一個(gè)正方形(oldboy_square.sh),接收用戶輸入的數(shù)字。

例如:

[root@oldboy ~]# sh oldboy_square1.sh 
Please Enter a number:5
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
[root@oldboy ~]# sh oldboy_square2.sh  
Please Enter a number:9
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■

企業(yè)面試題28、請(qǐng)用shell或Python編寫(xiě)一個(gè)等腰三角形(oldboy2_triangle.sh),接收用戶輸入的數(shù)字。

例如:

[root@oldboy ~]# sh oldboy2_triangle.sh 
Please Enter a number:5
    *
   ***
  *****
 *******
*********
[root@oldboy ~]# sh oldboy2_triangle.sh 
Please Enter a number:8
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************

企業(yè)面試題29、請(qǐng)用shell或Python編寫(xiě)一個(gè)畫(huà)直角梯形程序(oldboy4.sh),接收用戶輸入的參數(shù)n,m

例如:

[root@oldboy ~]# sh oldboy4.sh 4 6
****
*****
******

27,28,29三道題參考http://oldboy.blog.51cto.com/2561410/1718607

企業(yè)面試題30:寫(xiě)一套簡(jiǎn)單的企業(yè)代碼上線發(fā)布系統(tǒng)案例,利用SVN對(duì)代碼及配置文件進(jìn)行管理,在辦公室服務(wù)器上從svn取出指定版本的代碼和配置,發(fā)布到IDC機(jī)房分發(fā)機(jī)服務(wù)器上,在分發(fā)服務(wù)器或者負(fù)載均衡器上或者應(yīng)用服務(wù)器本地實(shí)現(xiàn)代碼平滑發(fā)布、上線、回滾腳本(具體設(shè)計(jì)請(qǐng)參考課堂講解的企業(yè)代碼發(fā)布方案)。

企業(yè)面試題31:請(qǐng)?jiān)O(shè)計(jì)一套Git+Saltstack實(shí)現(xiàn)代碼的線上發(fā)布及管理方案。

(可參考跟老男孩學(xué)習(xí)Linux運(yùn)維:Shell高級(jí)編程實(shí)戰(zhàn)一書(shū)內(nèi)容)

轉(zhuǎn)載的網(wǎng)友,請(qǐng)務(wù)必保留本文章的全部?jī)?nèi)容,謝謝。

檢查標(biāo)準(zhǔn):

1、查看實(shí)現(xiàn)的腳本,并詢問(wèn)腳本中的設(shè)計(jì)思想及實(shí)現(xiàn)流程。

2、必要情況下,面試官可以看著你要求你重新開(kāi)發(fā)出來(lái)。

3、檢查人:班長(zhǎng),組長(zhǎng),老男孩老師,助教。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容