1. 程式人生 > >(轉)合格linux運維人員必會的30道shell編程面試題及講解

(轉)合格linux運維人員必會的30道shell編程面試題及講解

需要 add 檢查 手工 rip 發送 toa exe 很多

超深度講解shell高級編程實戰,截至目前shell編程課程國內培訓機構最細的課程,不信請看學員表現的水平。

課程牛不牛,不是看老師、課表,而是看培養的的學生水平,目前全免費中夥伴們趕緊看啊。

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

企業合格的linux運維必會編程題,能獨立完成的同學就業工資不會低於12K

這是老男孩linux運維班要求學生必會的題目,完不成的不能合格畢業,每個完成的都獎勵價值500-1000元的等值禮物(以當天考試成績宣布為準),要進要退自己抉擇,夥伴們走起!

實戰考試時間就在2016年1月15日上機實戰,禁止大面積抄襲學習課堂筆記否則無獎勵!
共21道考試題,面授上課幾乎全部講解過類似的案例,考試題略微變更而已。

企業面試題1:(生產實戰案例):監控MySQL主從同步是否異常,如果異常,則發送短信或者郵件給管理員。提示:如果沒主從同步環境,可以用下面文本放到文件裏讀取來模擬:
階段1:開發一個守護進程腳本每30秒實現檢測一次。
階段2:如果同步出現如下錯誤號(1158,1159,1008,1007,1062),則跳過錯誤。
階段3:請使用數組技術實現上述腳本(獲取主從判斷及錯誤號部分)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [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 #當前的mysql master服務器主機 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 #和主庫比同步延遲的秒數,這個參數很重要 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error:

企業面試題2:
使用for循環在/oldboy目錄下通過隨機小寫10個字母加固定字符串oldboy批量創建10個html文件,名稱例如為:

1 2 3 4 5 6 [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

企業面試題3:請用至少兩種方法實現!
將以上文件名中的oldboy全部改成oldgirl(用for循環實現),並且html改成大寫。

企業面試題4:
批量創建10個系統帳號oldboy01-oldboy10並設置密碼(密碼為隨機8位字符串)。



企業面試題5:
寫一個腳本,實現判斷10.0.0.0/24網絡裏,當前在線用戶的IP有哪些(方法有很多)



企業實戰題6:請用至少兩種方法實現!
寫一個腳本解決DOS攻擊生產案例
提示:根據web日誌或者或者網絡連接數,監控當某個IP並發連接數或者短時內PV達到100,即調用防火墻命令封掉對應的IP,監控頻率每隔3分鐘。防火墻命令為:iptables -I INPUT -s 10.0.1.10 -j DROP。



企業實戰題7:
開發mysql多實例啟動腳本:
已知mysql多實例啟動命令為:mysqld_safe--defaults-file=/data/3306/my.cnf &
停止命令為:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sockshutdown
請完成mysql多實例啟動啟動腳本的編寫
要求:用函數,case語句、if語句等實現。

企業實戰題8:如何實現對MySQL數據庫進行分庫備份,請用腳本實現



企業實戰題9:如何實現對MySQL數據庫進行分庫加分表備份,請用腳本實現



企業面試題10:請用至少兩種方法實現!
bash for循環打印下面這句話中字母數不大於6的單詞(昆侖萬維面試題)。
I am oldboy teacher welcome to oldboy training class.



企業面試題11:開發shell腳本分別實現以腳本傳參以及read讀入的方式比較2個整數大小。以屏幕輸出的方式提醒用戶比較結果。註意:一共是開發2個腳本。當用腳本傳參以及read讀入的方式需要對變量是否為數字、並且傳參個數做判斷。

企業面試題12:打印選擇菜單,一鍵安裝Web服務:

[root@oldboyscripts]# sh menu.sh

1.[install lamp]

2.[install lnmp]

3.[exit]

pls input the num you want:

要求:

1、當用戶輸入1時,輸出“startinstalling lamp.”然後執行/server/scripts/lamp.sh,腳本內容輸出"lampis installed"後退出腳本;

2、當用戶輸入2時,輸出“startinstalling lnmp.”然後執行/server/scripts/lnmp.sh輸出"lnmpis installed"後退出腳本;

3、當輸入3時,退出當前菜單及腳本;

4、當輸入任何其它字符,給出提示“Input error”後退出腳本。

5、要對執行的腳本進行相關條件判斷,例如:腳本是否存在,是否可執行等。


企業面試題13:

1、監控web服務是否正常,不低於3種監控策略。

2、監控db服務是否正常,不低於3種監控策略。
要求間隔1分鐘,持續監控。

企業面試題14:監控memcache服務是否正常,模擬用戶(web客戶端)檢測。

使用nc命令加上set/get來模擬檢測,以及監控響應時間及命中率。


企業面試題15:面試及實戰考試題:監控web站點目錄(/var/html/www)下所有文件是否被惡意篡改(文件內容被改了),如果有就打印改動的文件名(發郵件),定時任務每3分鐘執行一次(10分鐘時間完成)。

企業面試題16:企業案例:寫網絡服務獨立進程模式下rsync的系統啟動腳本

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

企業面試題17:老男孩教育天津項目學生實踐抓鬮題目:

好消息,老男孩培訓學生外出企業項目實踐機會(第6次)來了(本月中旬),但是,名額有限,隊員限3人(班長帶隊)。

因此需要挑選學生,因此需要一個抓鬮的程序:

要求:

1、執行腳本後,想去的同學輸入英文名字全拼,產生隨機數01-99之間的數字,數字越大就去參加項目實踐,前面已經抓到的數字,下次不能在出現相同數字。

2、第一個輸入名字後,屏幕輸出信息,並將名字和數字記錄到文件裏,程序不能退出繼續等待別的學生輸入

企業面試題18:老男孩linux企業面試題:

已知下面的字符串是通過RANDOM隨機數變量md5sum|cut-c 1-8截取後的結果,請破解這些字符串對應的md5sum前的RANDOM對應數字?

21029299

00205d1c

a3da1677

1f6d12dd

890684b

企業面試題19:批量檢查多個網站地址是否正常

要求:shell數組方法實現,檢測策略盡量模擬用戶訪問思路

http://www.etiantian.org

http://www.taobao.com

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

http://10.0.0.7

企業面試題20(中企動力)::用shell處理以下內容

1、按單詞出現頻率降序排序!

2、按字母出現頻率降序排序!

the squid project provides a number of resources toassist users design,implement and support squid installations. Please browsethe documentation and support sections for more infomation

企業面試題21:輸出正方形、等腰三角形、直角梯形,見如下內容

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

企業面試題22:開發通過web界面展示監控Nginx代理節點狀態,效果圖如下。

技術分享

lvs+keepalived集群部分Shell企業案例:

企業面試題23、【LVS主節點】手工開發ipvsadm管理lvs的腳本ip_vs

實現:/etc/init.d/lvs {start|stop|restart}

企業面試題24、【LVS主節點】模擬keepalived健康檢查功能管理LVS節點,

當節點掛掉(檢測2次,間隔2秒)從服務器池中剔除,好了(檢測2次,間隔2秒)加進來

提示:利用ipvsadm命令實現添加和減少LVS節點。

企業面試題25、【LVS客戶端節點】開發LVS客戶端設置VIP以及抑制ARP的管理腳本

實現:/etc/init.d/lvsclient {start|stop|restart}

企業面試題26、【LVS備節點】模擬keepalved vrrp功能,監聽主節點,如果主節點不可訪問則備節點啟動並配置LVS實現接管主節點的資源提供服務(提醒:註意ARP緩存)

企業面試題27、請用shell或Python編寫一個正方形(oldboy_square.sh),接收用戶輸入的數字。

例如:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@oldboy ~]# sh oldboy_square1.sh Please Enter a number:5 ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ [root@oldboy ~]# sh oldboy_square2.sh Please Enter a number:9 ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■

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

例如:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@oldboy ~]# sh oldboy2_triangle.sh Please Enter a number:5 * *** ***** ******* ********* [root@oldboy ~]# sh oldboy2_triangle.sh Please Enter a number:8 * *** ***** ******* ********* *********** ************* ***************

企業面試題29、請用shell或Python編寫一個畫直角梯形程序(oldboy4.sh),接收用戶輸入的參數n,m

例如:

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

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

企業面試題30:寫一套簡單的企業代碼上線發布系統案例,利用SVN對代碼及配置文件進行管理,在辦公室服務器上從svn取出指定版本的代碼和配置,發布到IDC機房分發機服務器上,在分發服務器或者負載均衡器上或者應用服務器本地實現代碼平滑發布、上線、回滾腳本(具體設計請參考課堂講解的企業代碼發布方案)。

企業面試題31:請設計一套Git+Saltstack實現代碼的線上發布及管理方案。

(可參考跟老男孩學習Linux運維:Shell高級編程實戰一書內容)

轉載的網友,請務必保留本文章的全部內容,謝謝。

檢查標準:

1、查看實現的腳本,並詢問腳本中的設計思想及實現流程。

2、必要情況下,面試官可以看著你要求你重新開發出來。

3、檢查人:班長,組長,老男孩老師,助教。

本文出自 “老男孩linux培訓” 博客,請務必保留此出處http://oldboy.blog.51cto.com/2561410/1632876

(轉)合格linux運維人員必會的30道shell編程面試題及講解