【就業(yè)福利-259期】美團(tuán)Linux運(yùn)維工程師面試真題曝光
作為Linux運(yùn)維工程師,進(jìn)入大公司是開啟職業(yè)新起點(diǎn)的關(guān)鍵,今天馬哥Linux運(yùn)維及云計(jì)算智囊團(tuán)的小伙伴特別分享了其在美團(tuán)面試Linux運(yùn)維及云計(jì)算工程師的題目和經(jīng)歷,希望對廣大Linux運(yùn)維及云計(jì)算的求職者有一個幫助。
首先我們來看下美團(tuán)對Linux運(yùn)維工程師招聘崗位要求:
【崗位定義】系統(tǒng)運(yùn)維工程師
【崗位薪資】15K-30K
【基本要求】北京-朝陽區(qū)/學(xué)歷不限/經(jīng)驗(yàn)3-5年
【職位描述】
?1.制定和優(yōu)化運(yùn)維解決方案,包括但不限于柔性容災(zāi)、智能調(diào)度、彈性擴(kuò)容與防攻擊。
2.主導(dǎo)業(yè)務(wù)架構(gòu)的可運(yùn)維性設(shè)計(jì),參與業(yè)務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)施。
3.推動及開發(fā)高效的自動化運(yùn)維、管理工具,提升運(yùn)維工作效率。
4.全方位的性能優(yōu)化,將用戶速度體驗(yàn)提升到極致。
5.精確的容量測算和規(guī)劃,優(yōu)化運(yùn)營成本。
6.探索、研究新的運(yùn)維技術(shù)方向。
【任職資格】
1.3年以上運(yùn)維經(jīng)驗(yàn),對立體監(jiān)控、自動部署、容量管理、自動容災(zāi)有較深入的理解和實(shí)踐經(jīng)驗(yàn);
2.對Linux操作系統(tǒng)原理有深入的理解,熟悉 TCP/IP以及常用RPC協(xié)議;
3.熟練掌握C/PHP/Python/SHELL等1至2種語言,并有相關(guān)開發(fā)經(jīng)驗(yàn);
4.良好的溝通、組織協(xié)調(diào)、項(xiàng)目管理能力和強(qiáng)烈的責(zé)任心;
5.對行業(yè)技術(shù)敏感度高且細(xì)致,善于思考,樂于發(fā)現(xiàn),對解決具有挑戰(zhàn)性問題充滿激情。
美團(tuán)對Linux運(yùn)維工程師招聘崗位的面試題:
1、LINUX系統(tǒng)軟件安裝和卸載的常見方法
答: A.rpm包卸載:rpm -e XXX.rpm ? (如果想忽略依賴,可加上--nodeps)
B.yum remove xxx.rpm ?這種方法非常不建議使用,卸載過程會將待卸載的軟件包所依賴的軟件包一并卸載掉,很容易造成系統(tǒng)缺少某些包而崩潰等問題
C.源碼包卸載:cd命令進(jìn)入編譯后的軟件目錄,即安裝時(shí)的目錄,執(zhí)行make uninstall命令即可;或者直接刪除安裝目錄
2、Windows和LINUX常用的遠(yuǎn)程連接工具有那些
答: 命令遠(yuǎn)程連接工具:Xshell、SecureCRT、Putty、SSH Secure Shell Client等
圖形遠(yuǎn)程連接工具:xmanager(需安裝配置服務(wù)并打開177端口)、VNC-Viewer(Linux需安裝vncserver)、windows自帶的遠(yuǎn)程桌面(Linux需安裝xrdp和vnc)
3、如何修改LINUX的IP地址、網(wǎng)關(guān)和主機(jī)名
答:
A、修改IP地址、網(wǎng)關(guān):編輯/etc/sysconfig/network-scripts/ifcfg-eth0,修改里面IPADDR和GATEWAY內(nèi)容,沒有這兩行,則添加即可,添加時(shí)確保BOOTPROTO=static,靜態(tài)地址,如IPADDR=192.168.1.100 ? GATEWAY=192.168.1.1
B、修改主機(jī)名稱:編輯/etc/sysconfig/network,修改里面的HOSTNAME內(nèi)容,如設(shè)置主機(jī)名稱為mysql,則:HOSTNAME=mysql即可;
4、編寫腳本實(shí)現(xiàn)以下功能;
? ?每天早上5點(diǎn)開始做備份
? ?要備份的是/var/mylog里所有文件和目錄可以壓縮進(jìn)行備份
? ?備份可以保存到別一臺器上192、168、1、2 FTP帳號 aaa 密碼 bbb
? ?要示每天的備份文件要帶有當(dāng)天的日期標(biāo)記
答:
[root@haojiu ~]#cat /root/mylogbak.sh
#!/bin/bash
#scripts for dirbakup and upload to ftp server.
#author by haojiu?
#create by?
bakdir=mylog
date=`date +%F`
cd /var
tar zcf ${bakdir}_${date}.tar.gz ${bakdir}
sleep 1
ftp -n <<- EOF
open 192.168.142.129 ? ?#遠(yuǎn)程ftp服務(wù)器IP
user aaa bbb
put mylog_*.tar.gz
bye
EOF ?
rm -rf ?mylog_*.tar.gz ? ? #這步之前可以做一個判斷,判斷文件上傳成功再執(zhí)行rm,留給各位發(fā)揮吧。
添加crontab:
crontab -l
00 05 * * * /bin/bash /root/mylogbak.sh ? ? #每天早上5點(diǎn)開始執(zhí)行備份腳本
5、IPTABLES相關(guān)的命令
(豪鷲不熟悉iptables,這里請網(wǎng)友補(bǔ)充,具體問題還要具體分析)
6、mysql相關(guān)的題:新安裝MYSQL后怎樣提升MYSQL的安全級別
答: A.修改mysql默認(rèn)端口
?B.Linux下可以通過iptables來限制訪問mysql端口的IP地址
?C.對所有用戶設(shè)置較復(fù)雜密碼并嚴(yán)格指定對應(yīng)賬號的訪問IP(可在mysql庫中user表中指定用戶的訪問可訪問IP地址)
?D.root特權(quán)賬號的處理(建議給root賬號設(shè)置強(qiáng)密碼,并指定只允許本地登錄)
?E.開啟二進(jìn)制查詢?nèi)罩竞吐樵內(nèi)罩?
?F.mysql安裝目錄及數(shù)據(jù)存儲目錄權(quán)限控制:給mysql安裝目錄讀取權(quán)限,給mysql日志和數(shù)據(jù)所在目錄讀取和寫入權(quán)限
?G.刪除無用mysql賬號和刪除無用的數(shù)據(jù)庫(安裝好的mysql默認(rèn)會有個test庫,可將其刪除)
MYSQL的主從原理,怎么配置文件
答: ?整體上來說,復(fù)制有3個步驟: ??
? ? ? A.master將改變記錄到二進(jìn)制日志(binary log)中(這些記錄叫做二進(jìn)制日志事件,binary log events);
? ? ? B.slave將master的binary log events拷貝到它的中繼日志(relay log);
? ? ? C.slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。
Mysql復(fù)制的基本原理過程如下:
(1)Slave上面的IO線程連接上Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內(nèi)容;
(2)Master接收到來自Slave的IO線程的請求后,通過負(fù)責(zé)復(fù)制的IO線程根據(jù)請求信息讀取指定日志指定位置之后的日志信息,返回給Slave端的IO線程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息在Master端binary log文件的名稱以及在Binary log中的位置;
(3)Slave的IO線程收到信息后,將接收到的日志內(nèi)容依次寫入到Slave端的RelayLog文件(mysql-relay-lin.xxxxx)的最末端,并將讀取到的Master端的bin-log的文件名和位置記錄到master-info文件中,以便在下一次讀取的時(shí)候能夠清楚的告訴master“我需要從某個bin-log的哪個位置開始往后的日志內(nèi)容,請發(fā)給我”
(4)Slave的SQL線程檢測到Relay Log中新增加了內(nèi)容后,會馬上解析該Log文件中的內(nèi)容成為在Master端真實(shí)執(zhí)行時(shí)候的那些可執(zhí)行的查詢或操作語句,并在自身執(zhí)行那些查詢或操作語句,這樣,實(shí)際上就是在master端和Slave端執(zhí)行了同樣的查詢或操作語句,所以兩端的數(shù)據(jù)是完全一樣的。
補(bǔ)充:mysql主從復(fù)制的優(yōu)點(diǎn)————
<1> 如果主服務(wù)器出現(xiàn)問題, 可以快速切換到從服務(wù)器提供的服務(wù);
<2> 可以在從服務(wù)器上執(zhí)行查詢操作, 降低主服務(wù)器的訪問壓力;
<3> 可以在從服務(wù)器上執(zhí)行備份, 以避免備份期間影響主服務(wù)器的服務(wù)。
? 為MYSQL添加一個用戶
? mysql> grant select,insert,update,delete on book.* to test2@localhost identified by "abc"; ? ?#增加test2用戶,密碼為abc。并只能在localhost這臺主機(jī)上登錄,并且只能訪問book這個庫中的表,具有查詢,插入,更新,刪除權(quán)限;
? 語法:mysql> GRANT <權(quán)限> ON <庫>.<表> TO '用戶'@'主機(jī)名' identified by "密碼";
7、WINDOWNS相關(guān)的問題
? 你是否對WINDOWNS系統(tǒng)打過補(bǔ)丁,如果有100臺你會怎么做
?答: (題主是一個不專業(yè)的MCSE,記得在win2003中,有發(fā)布指派這個概念的,請各位網(wǎng)友補(bǔ)充)在域環(huán)境中,應(yīng)該是將一臺服務(wù)器作為域控補(bǔ)丁的update服務(wù)器,利用“發(fā)布與指派”的功能,將補(bǔ)丁批量更新到內(nèi)網(wǎng)其他服務(wù)器;
? WINDOWNS下怎么為MYSQL做定時(shí)完全備份
? ?答: 批處理+計(jì)劃任務(wù)+ftp上傳至遠(yuǎn)程服務(wù)器
? 在沒有硬件防火墻的情況下,怎樣提高WINDOS系統(tǒng)安全
?? 答: 用ISA防火墻?
8、顯示/test目錄下的所有目錄
答:豪鷲這里提供4種方法:
ls -d */
find . -type d -maxdepth 1 ?(如果不加-maxdepth 參數(shù),將會列出無窮多的子目錄。)
ls -F | grep '/$'
ls -l | grep '^d'|awk '{print $9}'
9、將文件/etc/a 下中除了 b文件外的所有文件壓縮打包放到/home/a下,名字為a.gz
答: tar --exclude /etc/a/b -zPcvf /home/a/a.gz /etc/a ? ? ? (不加P選項(xiàng)會提示:『tar: Removing leading `/' from member names』)
驗(yàn)證:
[root@haojiu a]# tar tPvf /home/a/a.gz ? ? ? ? (忽略掉b文件)
drwxr-xr-x root/root ? ? ? ? 0 2015-08-21 10:15 /etc/a/
-rw-r--r-- root/root ? ? ? ? 0 2015-08-21 10:15 /etc/a/d
-rw-r--r-- root/root ? ? ? ? 0 2015-08-21 10:15 /etc/a/f
-rw-r--r-- root/root ? ? ? ? 0 2015-08-21 10:15 /etc/a/c
-rw-r--r-- root/root ? ? ? ? 0 2015-08-21 10:15 /etc/a/e
10、給一個腳本賦予執(zhí)行權(quán)限的命令及選項(xiàng)
答: chmod +x a.sh
11、umask 022代表什么意思
答: 新建文件夾或文件的權(quán)限是由所謂基本碼減去稱之為umask的屏蔽位得到的。
按照規(guī)定:文件夾的基本碼是rwxrwxrwx(777),文件的基本碼是rw-rw-rw-(666)
因此新建文件夾是777-022=755(rwxr-xr-x),新建文件是666-022=644(rw-r--r--)。
綜上,umask 022表示默認(rèn)創(chuàng)建新文件權(quán)限為755 也就是 rxwr-xr-x(所有者全部權(quán)限,屬組讀寫,其它人讀寫)?
12、如何查看某進(jìn)程所打開的所有文件
答:取出該進(jìn)程的進(jìn)程號,然后用lsof -p pid查看打開的所有文件。(這里以crond進(jìn)程為例)
[root@haojiu a]# ps -ef |grep crond|grep -v grep |awk '{print $2}' ? #取出進(jìn)程號
2550
[root@zintao01 a]# lsof -p 2550 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #查看該進(jìn)程打開的所有文件
COMMAND ?PID USER ? FD ? TYPE ? ? ? ? ? ? DEVICE SIZE/OFF ? ?NODE NAME
crond ? 2550 root ?cwd ? ?DIR ? ? ? ? ? ? ? ?8,2 ? ? 4096 ? ? ? 2 /
crond ? 2550 root ?rtd ? ?DIR ? ? ? ? ? ? ? ?8,2 ? ? 4096 ? ? ? 2 /
crond ? 2550 root ?txt ? ?REG ? ? ? ? ? ? ? ?8,2 ? ?64096 ?820728 /usr/sbin/crond
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? ?65928 ?524319 /lib64/libnss_files-2.12.so
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 99158576 ?788202 /usr/lib/locale/locale-archive
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? 472064 ?554920 /lib64/libfreebl3.so
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? ?43392 ?554921 /lib64/libcrypt-2.12.so
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ?1926800 ?554903 /lib64/libc-2.12.so
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? 115536 ?554937 /lib64/libaudit.so.1.0.0
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? ?22536 ?554909 /lib64/libdl-2.12.so
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? ?58480 ?554938 /lib64/libpam.so.0.82.2
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? 124624 ?554913 /lib64/libseLinux.so.1
crond ? 2550 root ?mem ? ?REG ? ? ? ? ? ? ? ?8,2 ? 156928 ?554899 /lib64/ld-2.12.so
crond ? 2550 root ? ?0u ? CHR ? ? ? ? ? ? ? ?1,3 ? ? ?0t0 ? ?4160 /dev/null
crond ? 2550 root ? ?1u ? CHR ? ? ? ? ? ? ? ?1,3 ? ? ?0t0 ? ?4160 /dev/null
crond ? 2550 root ? ?2u ? CHR ? ? ? ? ? ? ? ?1,3 ? ? ?0t0 ? ?4160 /dev/null
crond ? 2550 root ? ?3u ? REG ? ? ? ? ? ? ? ?8,2 ? ? ? ?5 1084973 /var/run/crond.pid
crond ? 2550 root ? ?4u ?unix 0xffff88003b3949c0 ? ? ?0t0 ? 13870 socket
crond ? 2550 root ? ?5r ? DIR ? ? ? ? ? ? ? 0,10 ? ? ? ?0 ? ? ? 1 inotify
13、獲取eth0網(wǎng)卡上80端口的數(shù)據(jù)包信息
答: [root@haojiu ~]# tcpdump -i eth0 port 80
14、刪除 /a/b下的所有文件及目錄
答: [root@haojiu ~]# rm -rf /a/b/*
15、常用的網(wǎng)絡(luò)管理工具(5種以上)
答: Windows下有:ipcofnig(/all,/renew,/release),ping,tracert,nslookup……
????Linux下有:ifconfig,ping,tracerroute,dig,nslookup……
16、ftp、https、smtp、pops、ssh的端口號
答: ftp(20和21)、https(443)、smtp(25)、pops(110)、ssh(22)
17、如何在windows server 2003/2008上開啟支持內(nèi)存3-4G
答: 豪鷲沒做過,這里提供網(wǎng)上的做法: 在我的電腦上單擊鼠標(biāo)右鍵,選擇屬性,點(diǎn)擊“高級”標(biāo)簽,點(diǎn)擊【啟動和故障恢復(fù)】下的“設(shè)置”按鈕,點(diǎn)擊“編輯”按鈕,將Boot.ini文件的最后一行后面添加一個開關(guān) “/PAE”(不帶引號),保存后重新啟動機(jī)器即可。
18、請用iptables控制來自192.168.1.2主機(jī)的80端口請求
答: iptables -A INPUT -p tcp -s 192.168.1.2 --dport 80 -j ACCEPT ? (允許來自192.168.1.2這臺主機(jī)訪問80端口)
19、請用shell腳本創(chuàng)建一個組class、一組用戶,用戶名為stdX X從01-30,并歸屬class組
答: 腳本如下
[root@zintao01 ~]# cat adduser.sh?
#!/bin/bash
#script for adduser.
#create by haojiu
#2015-x-x
groupadd class
user=std
for i in {01..30}
do
useradd -G class ${user}$i
done
20、在mysql客戶端查詢工具中,如何獲取當(dāng)前的所有連接進(jìn)程信息
答: mysql> show full processlist;
21、如何刪除已滿的數(shù)據(jù)庫日志信息
答: 在my.cnf中的[mysqld]段下面加入:expire-logs-days=7(設(shè)置自動清除7天錢的logs),重啟mysql;
或者登錄進(jìn)mysql,執(zhí)行:purge binary logs to 'mysql-bin.000003'; ? ? ? ? ?#刪除bin-log(刪除mysql-bin.000003之前的而沒有包含mysql-bin.000003)
如果是mysql主從環(huán)境的,刪除日志,語句格式如下: ?
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
【特別說明】
面試真題屬于應(yīng)試者記憶問題的再現(xiàn),會與真實(shí)面試情況存在差別,馬哥Linux建議你參考多家企業(yè)的Linux運(yùn)維面試題目,增加通過率。