現在的情況讓人唏噓,事情都不是如我那麼想的,校招失敗了,垃圾安暢,不守信用的中金所,沒有接到任何消息。已經轉投實習生了,後天有機會進入金融公司,只不過是實習生轉正這條路,實習生崗位我都拿不下,我能夠去死了!想一想我真特麼可憐啊,1年多了呀,都沒有好好玩過,這又要準備忙了,一直在學,沒想到仍是這麼被動。爲何事情都不會像我但願的那樣,也不知道有沒有作好從學生轉向職場人士的準備,垃圾學校這破事也多。跪求一勝...
php
一、靜態資源和動態資源的區別,優缺點如何?html
答;靜態資源:URL固定,後綴名諸如.html和.jpg和.gif,它是服務端存在的一種文件,瀏覽器進行解析,不與數據庫交互,有利於網站推廣(SEO),維護麻煩。前端
動態資源:有數據庫支持,內容豐富,後綴名諸如.jsp和php,服務端解釋執行,交互性能好,執行消耗服務端的CPU資源,node
推薦優化將動態頁面轉爲靜態頁面。mysql
二、什麼是僞靜態,如何實現,有何特色。MIME類型是何物?linux
答:動態URL假裝爲靜態URL,rewrite規則實現,方便搜索引擎收錄,提高用戶體驗,網站性能不升反降。僞靜態網頁的URL一般不顯示後綴名,ios
MIME是服務端響應的數據類型,nginx
三、簡述nginx與apache區別?web
答:(1)nginx處理靜態頁面能力強,apache處理動態頁面能力強。面試
(2)nginx的抗併發性能好,消耗內存小。
(3)nginx能作反向代理和負載均衡,同時具備緩存功能。
(4)相對於apache模塊化的龐然大物來講,nginx是個輕量級的web服務器。
(5)nginx與PHP結合,是分離式的,而apache與PHP進程整合能夠是模塊化嵌入的,也能夠是fastcgi類型的。
(6)apache處理請求時prefork或者worker模型,而nginx是event模型。
(7)apache的事件IO處理模型是select模型,而Nginx的事件IO處理模型是epoll模型。
四、在Nginx中,請說明Rewrite模塊裏break和last的區別?
答:(1)break:終止此輪rewrite循環,而且再也不進行新的URI匹配。
(2)last:終止此輪rewrite循環,而且尋找下一個新的URI匹配。
##rewrite規則裏總共有last、break、redirect、permanent四種標誌符。
五、Apache的select模型和Nginx的epoll模型?
答:太難。開發人員才深究這個。知道epoll多路複用比較高校,沒有最大文件描述符的限制。
參考文檔:http://blog.163.com/niuxiangshan%40126/blog/static/17059659520141711458276/
六、文件內容以下,裏面都是一些隨機的數字,如何實現求最大值和最小值。(之後遇到求大小的值,都把它放在一個文件裏,用tr命令轉爲爲列,再排序,套路都同樣,記住了!)
[root@www Scripts]# cat 3.txt
10 60
20 70
30 40
50 8 4
答:[root@www Scripts]# cat 3.txt |tr " " "\n"|sort -n|sed -n '1p;$p' ##這裏的tr命令必須把空格的引號分開來,否則沒法轉成列
##這裏有點小bug,若是8日後移一點,跟40不對齊,就會出現問題,不過這些東西只是爲了筆試面試而已,工做中不會用到吧,好比求三個數的最大值,最小值問題。
#!/bin/bash
echo "$1 $2 $3">file.txt
cat file.txt|tr " " "\n"|sort -n |sed -n '1p;$p'
七、介紹下LVS負載模式的優缺點以及相應調度算法,相比的Nginx負載均衡有幾種算法呢?
答:(1)NAT模式的優勢是能夠運行任何支持TCP/IP的操做系統,windows和linux均可以,服務器組可使用私有IP地址。缺點是調度器自己可能成爲瓶頸。
(2)DR模式的有點是後端real server直接將數據返回給客戶端自己,這樣調度器就能處理大量的請求,缺點後端服務器主要運行linux操做系統。
(3)隧道模式優勢是通常用於遠程服務器,要求調度器和後端real server都要支持相應的隧道協議。
算法:輪詢、加權輪詢、最少鏈接(已經創建的鏈接數最少)、加權最少鏈接(加權就是根據服務器的處理能力作權衡比重)、基於局部性的最少鏈接(局部性就是Cache集羣系統)、帶複製的基於局部性最少鏈接(複製就是將最忙的服務器從服務器組中刪除)、目的地址散列(根據請求的目的IP地址作散列鍵),源地址散列(根據請求的源IP地址作散列鍵)。
Nginx:ip_hash、URL_hash、權重、輪詢。
八、集羣服務器中有一臺發生故障,致使時好時壞,你該如何處理?(現現在,我沒經歷過生產環境,確實還不知道怎麼辦)
答:(1)前端調度器使用Keepalived,若是後端服務器有故障則會自動從服務器組中剔除,若是恢復正常,則又加入集羣隊列。
(2)而後分析故障現象,查看日誌,究竟是硬件上的問題,仍是軟件的bug,總之可靠性是個很嚴肅的問題。
九、Mysql的數據庫安全性?
答:操做系統系別,硬件防火牆、iptables、TCP_wrappers幹掉外部不可信任的網絡。
數據庫級別來講,對用戶能使用哪些數據庫作限制,對SQL語句操做的合理受權,防止內網開發人員搞破壞。
對磁盤上備份的數據文件進行加密,防止數據泄露和篡改,等須要恢復的時候,再解密。
禁用~/mysql.histroy文件,由於這個文件記錄了管理員操做SQL命令的語句,若是被***獲取,很容易知道的數據庫表結構。
對日誌文件進行chroot,改變根目錄,保證安全性。
十、IDC機房部署考慮因素問題。(這題被問到筆試一次,面試一次)
答:異地容災啊,消防設施,散熱設施,機房選址等等。
十一、硬件故障、用戶誤操做、系統崩潰等緣由致使數據丟失,你該怎麼處理?(這TM的確定又喜歡考)
答:(1)先拷貝和保護現有無缺的數據,防止被二次破壞
(1)事先應該有備份資源,從這裏進行恢復。回憶本身最近幹過什麼事情,便於排錯。
(3)及時通知上級出現了意外狀況,以避免本身耽擱時間(呵呵,有些人就喜歡聽到這個了)
十二、Nagios報警郵件收不到怎麼辦?
答:(1)ps命令,查看Nagios 守護進程起來了沒有。
(2)查看日誌/var/log/maillog,是否是郵件服務器把咱們發的告警郵件當成垃圾郵件給拒絕了,QQ郵箱防垃圾郵件最厲害。
(3)使用系統自帶的sendmail服務,是否是啓動該進程的用戶的權限收到了限制。
(4)檢查咱們的配置文件是否是出了問題,可能語法沒錯,可是漏了點什麼東西,諸如commands.cfg,host.cfg,contact.cfg
1三、你是如何作Nagios告警策略的?(說實話,我暫時沒作過)
答:(1)能夠下載飛信軟件進行短信報警,也可使用系統自帶的sendmail服務進行郵件報警。
(2)在Nagios配置文件中定義contact.cfg,添加接收的郵件地址,以及在什麼監控指標下報警。其實Nagios整個監控
和報警流程,都是配置文件的彼此調用。
(3)保證25端口可以起來便可。
參考文檔:http://blog.chinaunix.net/uid-418401-id-2405565.html
1四、Memcached分佈式原理?一致性哈希原理?
答:(1)分佈式原理:假設有5臺memcached服務器:node1,node2…node5。如今要保存鍵爲key1,key2…key10的數據。首先往memcached中添加key1。將key1傳給客戶端程序以後,客戶端實現的算法會根據這個鍵「key1」來決定保存數據的memcached服務器。將服務器選定以後,將會用選定的服務器來保存「key1」和對應的值。在獲取數據的時候,經過先根據要獲取的數據的key來根據客戶端實現的相同的算法選擇對應的數據保存的服務器,而後取出數據。這樣就實現了memcached的分佈式。Memcached的服務器增多,則鍵就會更加的分散。及時一臺服務器掛掉,也不會影響其餘的緩存。
(2)一致性哈希這種方法首先求出memcached服務器的哈希值,而後將它分配到0~2^32的圓上,而後使用一樣的辦法求出數據的健的哈希值,將其映射到圓上。而後從數據映射的點開始順時針的查找,將數據保存到查找到的第一臺服務器上面。
參考文檔:http://lzs66.blog.51cto.com/9607068/1859818
1五、分佈式集羣有何優勢?
答:(1)當一臺服務器的處理性能達到極限時,咱們使用分佈式集羣來提升網站的處理性能,使用必定的調度算法進行負載均衡。
(2)分佈式集羣具備冗餘的做用,當一臺服務器的數據丟失的時候,咱們還能夠從其餘機器進行恢復同步。
1六、Postfix的工做過程。
答:用戶在某網站上申請一個帳戶,當用戶須要發信時用戶會經過本機的MUA發送給網站的SMTPD,而且進入郵件隊列,SMTPD發現這個郵件是發送給本地主機,就經過MDA,把郵件投遞到用戶的郵箱中,若是發現是發給別的主機或域的就中繼出去。當用戶須要收取郵件的時候,MRA會要求用戶驗證,若是經過了驗證,MRA會替用戶去用戶的郵箱把郵件取回來而後傳遞給用戶的MUA。整個過程是這樣的。 因爲SMTPD是位熱心的同志,凡是到它那的郵件若是是它主機用戶的它就收下而後投遞到用戶郵箱,不是它用戶的它就熱心的幫忙轉發,早期垃圾郵件橫行也有一部分是這個緣由,因此如今基本上全部的郵件服務器都關閉了開放式中繼(openrelay),只給本機或本域的用戶轉發郵件,可是問題有出現了,之前能夠憑來源IP能夠判斷是否是本機或本域的用戶,如今都是基於虛擬用戶的(每一個用戶註冊的都是系統用戶啊多不安全啊),沒法基於IP判斷了,因而引入了另外一個認證機制SASL(Simple Authentication Secure Layer),當用戶須要發送郵件的時候,SMTPD會調用SASL來驗證,若是驗證經過了就給你中繼,若是通不過那麼對不起,去找別人吧。
參考文檔:http://www.tuicool.com/articles/biErAn
1七、爲何說Nginx支持高併發?(這個問題很難)
答:用我的話說,異步、非阻塞、epoll模型
(1)基於線程,即一個進程生成多個線程,每一個線程響應用戶的每一個請求。
(2)基於事件的模型,一個進程處理多個請求,而且經過epoll機制來通知用戶請求完成。
(3)基於磁盤的AIO(異步I/O)
(4)支持mmap內存映射,mmap傳統的web服務器,進行頁面輸入時,都是將磁盤的頁面先輸入到內核緩存中,再由內核緩存中複製一份到web服務器上,mmap機制就是讓內核緩存與磁盤進行映射,web服務器,直接複製頁面內容便可。不須要先把磁盤的上的頁面先輸入到內核緩存去。
參考文檔:http://5404542.blog.51cto.com/5394542/1740453
1八、在不umount的狀況下,如何從新設置mount的參數。如何查找某一文件被哪一個進程打開?
答:mount -o remount,rw /
lsof /usr/bin/mysqld_safe
1九、具體說說cacti/nagios 的安裝過程?cacti如何監控mysql?
答:(1)cacti安裝步驟:首先安裝好lamp環境(建議都使用編譯安裝)和snmp服務,rrdtool工具安裝,而後創建cacti庫和登陸mysql帳號,並賦權;其次下載並解壓cacti到web server的htdocs或html目錄下,確保敲入http://IP:port/cacti
能被訪問到,進而在web上安裝cacti,修改web頁面上的snmp團體字,確保跟snmpd.conf的團體字一致,而後再手動執行php poller.php看看可否在rra目錄下生成.rrd文件,默認只監控本機資源,將php.poller.php命令寫入到crontab中,每5分鐘執行一次,若是須要監控遠程主機,須要在對方主機安裝snmp服務,而且保證snmp的團體字與監控主機上的snmp團體字是一致的;最後,添加其餘監控主機,添加模板,安裝插件等一系列工做。
(2)nagios安裝步驟:首先一樣安裝好lamp環境(建議使用編譯安裝),而後下載並安裝nagios和nagios-plugin,整合apache和naigos,並建立web登陸帳號驗證,確保敲入http://IP:port/nagios/
能正常訪問並登陸,遠程主機安裝nrpe或NClient++;最後添加配置遠程主機信息,報警功能實現,添加所需的監控指標等工做。
(3)cacti監控mysql:首先到cacti的論壇上下載cacti監控mysql的模板,而後導入到cacti中,而後添加主機,選擇應用模板,最後等待5分鐘,看看是否監控正常。
20、sed和awk命令的區別?
答:(1)awk適合按列(域)操做,sed適合按行操做。
(2)awk稱爲報表生成器,sed稱爲流編輯器。
(3)awk更爲強大,支持數組、循環等,甚至能夠看做是一門編程語言,內部語法相似C語言。
(4)sed是一個流編輯器,它的強大之處在於能夠以行的方式來腳本化處理文本,而且語法相對awk來講更爲簡單,它的功能就是增刪改查,但它畢竟不是編程語言,沒有循環、數組等邏輯,因此,sed一般和awk一塊兒使用,它們恰好互補,一塊兒使用構成了文本處理的兩個利器。
2一、創建一個公共目錄/opt/public,要求每一個用戶均可以建立文件和目錄,但只能本身本人和root能夠刪除
答:mkdir /opt/public ,chmod 1777 /opt/public
rwsrw-r– 表示有setuid標誌 chmod 4777是設sid
rwxrwsrw- 表示有setgid標誌 chmod 2777是設置gid
rwxrw-rwt 表示有sticky標誌 chmod 1777是設sticky
2二、DNS遞歸查詢和迭代查詢的區別是什麼?
答:遞歸查詢是逐級查詢,本地DNS請求根域名服務器,根域名服務器請求頂級域名服務器,頂級域名服務器請求二級域名服務器,
獲得結果後,再進行回溯,二級域名服務器返回給頂級域名服務器,頂級域名服務器返回給根域名服務器,最後返給本地DNS。
(2)迭代查詢,根域名服務器把頂級DNS的IP給了我,我去找頂級DNS,而後頂級DNS給我了二級DNS的IP,我去找二級DNS,最後二級DNS把解析的結果給了我。
2三、linux文件刪除原理。(感受就是刪了從文件名聯繫到inode的指針而已,並非清除數據塊)
答:linux是經過link數量控制文件刪除,通常來講,每一個文件都有兩個計數器,i_link和i_count,i_link是文件的硬連接數。i_count是文件被進程調用數,只要i_link和i_count同時爲0時,文件纔會被刪除。
rm刪除的是文件的i_link數。
2四、用ls 查看目錄或者文件時,第二列的數值表示什麼意思?若是一個目錄的這列的值爲3,那麼這個3是如何獲得的?
答:硬連接。此目錄自己,此目錄的父目錄,此目錄下的子目錄,他們的I節點號都相同。
2五、SSH原理
答:用戶須要爲本身建立一對密鑰。用戶要經過其餘安全的方式,把公鑰方在須要遠程管理的服務器上。當管理員鏈接到SSH服務器上的時候,客戶端會向服務器發出請求,要求其利用客戶端的密鑰進行安全性認證。服務器收到客戶端的請求後,就會利用你事先發給他的公鑰進行比較、辨別。如要兩個密鑰一致的話,服務器就用公鑰加密質詢並把它發送給客戶端軟件。客戶端軟件接收到服務器的質詢後,就能夠利用私人密鑰進行解密並把結果發送給服務器。
參考文檔:http://forlinux.blog.51cto.com/8001278/1352900
2六、Linux下mv和cp命令的區別?(這個能夠本身測試一下)
答:(1)cp至關於拷貝,mv至關於剪切,mv能夠更名。
(2)cp複製的時候不會攜帶文件屬性,好比Inode,mv移動的時候會攜帶Inode屬性,從而致使移動後的目錄Inode發生了改變。
參考文檔:https://zhidao.baidu.com/question/1367462050558064859.html
2七、 Memcached存取原理?
答:取:前端動態web應用程序,能夠理解爲客戶端發出一個key的請求,然後該鍵被hash成一個哈希值,然後在一個0-2^32的哈希環上,進行順時針查找,找什麼呢?找的是距離最近的Memcached服務器節點的哈希值,被選中的服務器經過該key在巨大的內存哈希表中進行查找,若是有對應的鍵值對,則原路返回給客戶端,若是沒有,就向後臺數據塊服務器取一份回來,並進行查詢緩存,從而減輕數據庫負載,提升網站總體性能。
存:前端動態web應用程序,能夠理解爲客戶端發出一個鍵值對請求,一樣,根據一致性哈希算法,肯定哪臺服務器來存儲,當被選中Memcached收到該鍵值對的時候,首先計算鍵值對的大小,看本身的數據塊是否可以容納該鍵值對,若是不夠則向系統申請,若是申請達到了上線,就是用LRU算法移除掉最近最少使用的數據塊,騰出空間來放最新的東西。
參考文檔:http://www.cnblogs.com/yinrq/p/5013742.html
2八、如何在不重啓Nginx服務的狀況下,對Nginx軟件更新。(生產環境最難解決的問題,就是在不干擾業務的狀況下,下線進行完善服務器)
答:Nginx方便地幫助咱們實現了平滑升級。其原理簡單歸納,就是:
(1)在不停掉老進程的狀況下,啓動新進程。
(2)老進程依然負責處理沒有處理完畢的請求,但再也不接受新的請求。
(3)新進程接受新請求。
(4)老進程處理完全部請求,關閉全部鏈接後,進程撤銷。
參考文檔:http://blog.csdn.net/poechant/article/details/7208167
2九、你對數據庫備份怎麼看?
答:首先,考慮要備份的數據庫對象是什麼,是表仍是數據庫仍是日誌;備份的環境是什麼,主服務器上仍是備服務器上,線上仍是線下,而後纔是備份的方式,邏輯備份仍是物理備份。是本地硬盤備份仍是異地容災備份?備份後的測試,能恢復成功嗎?等等
那麼最重要的是備份方式的選擇:
(1)mysqldump 命令進行備份,mysql命令進行恢復。
(2)在從機器上,停掉IO線程,而後鎖住表,對數據文件進行冷備份
(3)MysqlHotcopy進行熱備份
(4)直接對數據文件和日誌文件rsync傳輸到另外一臺物理機器上。
(5)第三方工具,如Xtrabackup.
30、你對Linux運維有何認識,工做有啥特色,爲何想作這行?談談你的優點,我只關心技術上。(素質題是加好感的地方啊)
答:(1)從工做上來講:保證機房中物理基礎的安全,如路由器、交換機、PC和服務器正常運做,對數據的遷移和備份,對主機和服務級別的監控,編寫報告交給上級,對操做系統的安裝配置,對服務軟件的排錯。
(2) 一個運維人員的價值就是當服務出現問題的時候,可以快速定位問題出如今哪個環節,也許這個問題之前從沒有接觸過,
可是他知道該往哪一個正確的方向去思考,從而在最短的時間減小公司的損失。(這一點很是重要,這纔是他最想聽的)
(3)技術優勢:事實上,我並無自信說我哪部分學的最好,我追求的是廣度,不是深度,若是實在讓我說哪部分基礎相對紮實的話,我以爲是DNS和iptables。(若是這位面試官是思必馳的話,他還要繼續問,還有嗎還有嗎?唉,人生陰影啊!)