超深度講解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://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)太難了。)
答案:
企業(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),老男孩老師,助教。
