2017年企業(yè)運(yùn)維經(jīng)典面試題匯總
1
寫一個腳本查找最后創(chuàng)建時間是三天前,后綴是*.log的文件并刪除
find .-ctime +3 -name '*.log' | rm -rf
2
統(tǒng)計(jì)ip訪問情況,要求分析nginx訪問日志,找出訪問頁面數(shù)量在前十位的ip
cataccess.log | awk '{print $1}' | uniq -c | sort -rn | head -10
3
使用tcpdump監(jiān)聽主機(jī)為192.168.1.1,tcp端口為80的數(shù)據(jù),同時將輸出結(jié)果保存輸出到tcpdump.log。
tcpdump 'host 192.168.1.1 and port 80' > tcpdump.log
4
利用Python打印前一天的本地時間,格式為'2016-03-29 13:58:34'
time.strftime('%y-%m-%d%H:%M%:%S' time.locatime(time.time() -86400))
5
用Python將‘123456’反轉(zhuǎn)為‘654321’
‘123456’[::-1]
6
利用Python執(zhí)行shell命令并取得返回結(jié)果
>>> import subprocess>>>
a=subprocess.popen('ls',shell=True,stdout=subprocoss.PIPE, stderr=subprocess.PIPE)>>>stdout,sterr = a.communicate()>>>print stdout
7
請用Python繼承process,并寫一個并行執(zhí)行的類,并寫出使用過程。
import multiprocessingimport timeclass ClockProcess(multiprocessing.Process): ? ?def __init__(self, interval): ? ? ? ?multiprocessing.Process.__init__(self) ? ? ? ?self.interval = interval ? ?def run(self): ? ? ? ?n = 5 ? ? ? ?while n > 0: ? ? ? ? ? ?print("the time is {0}".format(time.ctime())) ? ? ? ? ? ?time.sleep(self.interval) ? ? ? ? ? ?n -= 1
8
如何將本地80 端口的請求轉(zhuǎn)發(fā)到8080 端口,當(dāng)前主機(jī)IP 為192.168.2.1
Iptables –t nat -A PREROUTING -d 192.168.2.1 -p tcp ?–dport 80 -j REDIRECT --to 8080
9
在11 月份內(nèi),每天的早上6 點(diǎn)到12 點(diǎn)中,每隔2 小時執(zhí)行一次/usr/bin/httpd.sh 怎么實(shí)現(xiàn)
0 6-12/2 * 11 * /usr/bin/httpd.sh
10
編寫個shell 腳本將/usr/local/test 目錄下大于100K 的文件轉(zhuǎn)移到/tmp目錄下
find /usr/local/test -type f -size +100k -exec mv {} /tmp/
或
#!/bin/bashfilelist=$(ls ?/usr/local/test -l | grep "^-" | awk '{print $9}') filepath="/usr/local/test"for file in $filelistdo ? ?filesize=$(du -s $filepath$file |awk '{print $1}') ? ?if [ $filesize -gt 100] ? ?then ? ?mv $filepath$file /tmp/fidone
11
簡述raid0 raid1 raid5 三種工作模式的工作原理及特點(diǎn)。
RAID 0
帶區(qū)卷,連續(xù)以位或字節(jié)為單位分割數(shù)據(jù),并行讀/寫于多個磁盤上,因此具有很高的數(shù)據(jù)傳輸率,但它沒有數(shù)據(jù)冗余,RAID 0 只是單純地提高性能,并沒有為數(shù)據(jù)的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數(shù)據(jù)。因此,RAID 0 不能應(yīng)用于數(shù)據(jù)安全性要求高的場合。
RAID 1
鏡像卷,它是通過磁盤數(shù)據(jù)鏡像實(shí)現(xiàn)數(shù)據(jù)冗余,在成對的獨(dú)立磁盤上產(chǎn)生互為備份的數(shù)據(jù),不能提升寫數(shù)據(jù)效率。當(dāng)原始數(shù)據(jù)繁忙時,可直接從鏡像拷貝中讀取數(shù)據(jù),因此RAID1 可以提高讀取性能。RAID 1 是磁盤陣列中單位成本最高的,鏡像卷可用容量為總?cè)萘康?/2,但提供了很高的數(shù)據(jù)安全性和可用性。當(dāng)一個磁盤失效時,系統(tǒng)可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數(shù)據(jù)。
RAID5
至少由3塊硬盤組成,分布式奇偶校驗(yàn)的獨(dú)立磁盤結(jié)構(gòu),它的奇偶校驗(yàn)碼存在于所有磁盤上,任何一個硬盤損壞,都可以根據(jù)其它硬盤上的校驗(yàn)位來重建損壞的數(shù)據(jù)(最多允許1塊硬盤損壞)。所以raid5可以實(shí)現(xiàn)數(shù)據(jù)冗余,確保數(shù)據(jù)的安全性,同時raid5也可以提升數(shù)據(jù)的讀寫性能。
12
oracle 數(shù)據(jù)庫備份方式
從物理與邏輯的角度分類:物理備份:對數(shù)據(jù)庫操作系統(tǒng)的物理文件(如數(shù)據(jù)文件、控制文件、日志文件等)的備份,物理備份又分為冷備份和熱備份,前者是在關(guān)閉數(shù)據(jù)庫的時候進(jìn)行的,后者對正以歸檔日志方式進(jìn)行的數(shù)據(jù)庫備份,可以使用RMAN進(jìn)行數(shù)據(jù)庫的物理備份邏輯備份:對數(shù)據(jù)庫邏輯組件(如表、表空間、存儲過程等數(shù)據(jù)庫對象)的備份邏輯備份的手段很多,如exp、數(shù)據(jù)泵expdp、數(shù)據(jù)庫閃回技術(shù)等
從數(shù)據(jù)庫的備份策略角度分類:完全備份:每次對數(shù)據(jù)庫進(jìn)行完整備份增量備份:只有那些在上次完全備份或者增量備份后被修改的文件才會被備份。差異備份:備份那些自從上次完全備份之后被修改過的文件。
13
如何查看占用端口8080 的進(jìn)程
netstat -anpt | grep 8080
或
lsof -i :8080
14
請寫出apache2.X 版本的兩種工作模式,以及各自工作原理。如何查看apache 當(dāng)前所支持的模塊,并且查看是工作在哪種模式下?
prefork(多進(jìn)程,每個子進(jìn)程產(chǎn)生一個線程)和worker(多進(jìn)程多線程,每個進(jìn)程生成多個線程)其主要工作方式是:當(dāng)Apache服務(wù)器啟動后,mpm_prefork模塊會預(yù)先創(chuàng)建多個子進(jìn)程(默認(rèn)為5個),每個子進(jìn)程只有一個線程,當(dāng)接收到客戶端的請求后,mpm_prefork模塊再將請求轉(zhuǎn)交給子進(jìn)程處理,并且每個子進(jìn)程同時只能用于處理單個請求。如果當(dāng)前的請求數(shù)將超過預(yù)先創(chuàng)建的子進(jìn)程數(shù)時,mpm_prefork模塊就會創(chuàng)建新的子進(jìn)程來處理額外的請求。Apache總是試圖保持一些備用的或者是空閑的子進(jìn)程用于迎接即將到來的請求。這樣客戶端的請求就不需要在接收后等候子進(jìn)程的產(chǎn)生。由于在mpm_prefork模塊中,每個請求對應(yīng)一個子進(jìn)程,因此其占用的系統(tǒng)資源相對其他兩種模塊而言較多。不過mpm_prefork模塊的優(yōu)點(diǎn)在于它的每個子進(jìn)程都會獨(dú)立處理對應(yīng)的單個請求,這樣,如果其中一個請求出現(xiàn)問題就不會影響到其他請求。Prefork在效率上要比Worker要高,但是內(nèi)存使用大得多不擅長處理高并發(fā)的場景。
Worker模式(多線程多進(jìn)程):和prefork模式相比,worker使用了多進(jìn)程和多線程的混合模式,worker模式也同樣會先預(yù)派生一些子進(jìn)程,然后每個子進(jìn)程創(chuàng)建一些線程,同時包括一個監(jiān)聽線程,每個請求過來會被分配到一個線程來服務(wù)。線程比起進(jìn)程會更輕量,因?yàn)榫€程是通過共享父進(jìn)程的內(nèi)存空間,因此,內(nèi)存的占用會減少一些,在高并發(fā)的場景下會比prefork有更多可用的線程,表現(xiàn)會更優(yōu)秀一些;另外,如果一個線程出現(xiàn)了問題也會導(dǎo)致同一進(jìn)程下的線程出現(xiàn)問題,如果是多個線程出現(xiàn)問題,也只是影響Apache的一部分,而不是全部??偟膩碚f,prefork方式速度要稍高于worker,然而它需要的cpu和memory資源也稍多于woker??梢酝ㄟ^命令httpd -M 或 httpd -l 可以查看apache 當(dāng)前的模塊可以通過命令httpd -V查看是工作在哪種模式下
15
你使用過監(jiān)控軟件嗎?說說其特點(diǎn)
使用nagios對服務(wù)器進(jìn)行監(jiān)控,其特點(diǎn)側(cè)重于對檢測項(xiàng)的狀態(tài)監(jiān)控,主要通過nrpe實(shí)現(xiàn)對遠(yuǎn)程主機(jī)的監(jiān)控,但也可以通過snmp對設(shè)備(如路由器、交換機(jī))進(jìn)行監(jiān)控,可實(shí)時實(shí)現(xiàn)手機(jī)短信、電子郵件、MSN、飛信報警。
使用cacti 對服務(wù)器進(jìn)行監(jiān)控,其特點(diǎn)側(cè)重性能和流量監(jiān)控并通過圖表顯示,主要通過snmp協(xié)議收集監(jiān)測項(xiàng)數(shù)據(jù),可實(shí)時實(shí)現(xiàn)手機(jī)短信、電子郵件、使用zabbix對服務(wù)器進(jìn)行監(jiān)控,zabbix是完全開源的工具,整合了cacti和nagios等特性。
zabbix可以對主機(jī)的性能監(jiān)控、網(wǎng)絡(luò)設(shè)備性能監(jiān)控、數(shù)據(jù)庫、FTP 等通用協(xié)議監(jiān)控、多種告警方式、詳細(xì)的報表圖表繪制支持自動發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備和服務(wù)器(可以通過配置自動發(fā)現(xiàn)服務(wù)器規(guī)則來實(shí)現(xiàn))支持分布式,能集中展示、管理分布式的監(jiān)控點(diǎn),擴(kuò)展性強(qiáng)可以自己開發(fā)完善各類監(jiān)控(根據(jù)相關(guān)接口編寫程序?qū)崿F(xiàn)),編寫插件容易,可以自定義監(jiān)控項(xiàng),報警級別的設(shè)置。數(shù)據(jù)收集,支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET;
掃描二維碼,添加馬哥個人微信,領(lǐng)取kindle大獎!