筆者其實(shí)沒(méi)有想到去面試,只是在智聯(lián)上更新了一下簡(jiǎn)歷,就陸陸續(xù)續(xù)接到很多獵頭的郵件和電話,實(shí)在是沒(méi)準(zhǔn)備好要去面試,就推掉了幾家公司的面試了。正因?yàn)楣P者也很久沒(méi)有面試了,筆者也想去面試學(xué)習(xí)一下,閑話少說(shuō),下面就分享給大家筆者在2018年1月4號(hào)上午10點(diǎn)30分的面試經(jīng)歷:
首先,獵頭或者公司人資會(huì)把公司的介紹及崗位要求發(fā)到你郵箱(或者QQ、微信),下面這份是獵頭發(fā)給我的崗位說(shuō)明,為了職業(yè)道德操守,公司的介紹和面試通知信息我就不貼出來(lái)了,我就把崗位要求貼出來(lái):
職位描述:
1、 負(fù)責(zé)應(yīng)用服務(wù)器的安裝、配置、優(yōu)化與維護(hù);
2、 負(fù)責(zé)應(yīng)用系統(tǒng)的日志信息備份、管理、維護(hù)與分析;
3、 負(fù)責(zé)應(yīng)用系統(tǒng)的日常監(jiān)測(cè)于維護(hù)、故障處理、性能分析與優(yōu)化;
4、 負(fù)責(zé)應(yīng)用部署系統(tǒng)、環(huán)境配置系統(tǒng)、監(jiān)控系統(tǒng)的開(kāi)發(fā)、部署、升級(jí)與維護(hù),建設(shè)高性能的運(yùn)維平臺(tái)。
崗位要求:
1、 熟悉Linux操作系統(tǒng)的基礎(chǔ)知識(shí),熟練使用Linux常用操作命令;
2、 熟練配置Nginx、HAproxy 等應(yīng)用相關(guān)軟件的部署、配置與優(yōu)化維護(hù);
3、 熟悉網(wǎng)絡(luò)基礎(chǔ)知識(shí)、熟悉TCP/IP的工作原理,會(huì)配交換機(jī)或路由器,能熟練的對(duì)網(wǎng)絡(luò)情況進(jìn)行分析
4、 熟悉shell/perl/python中的一種或多種進(jìn)行運(yùn)維程序的開(kāi)發(fā);
5、 熟悉Nagios,Ganglia等監(jiān)控軟件
看著上面的要求大家是不是覺(jué)得要求也不高啊,你要細(xì)看就會(huì)發(fā)現(xiàn),這家公司要求的還挺多,不僅要會(huì)網(wǎng)絡(luò)知識(shí)(熟悉TCP/IP好像是每家單位的都會(huì)寫(xiě)這樣的要求),還要會(huì)開(kāi)發(fā)技能。相信很多做運(yùn)維的兄弟在網(wǎng)絡(luò)這一塊是個(gè)頭疼的事情,都對(duì)交換機(jī)和路由器不怎么會(huì)配置和管理。
然后,筆者詳細(xì)了解他們公司,了解崗位要求,在突擊復(fù)習(xí)一下可能會(huì)問(wèn)到的知識(shí)點(diǎn)和技術(shù)點(diǎn)。到了面試的這天時(shí)間,早早的起床,把牙一定要刷干凈,特別是有口臭的兄弟,最好準(zhǔn)備點(diǎn)口香糖,到達(dá)面試公司前嚼塊口香糖,以免因?yàn)榭跉獾脑蜓矫嬖嚬伲屇阍诿嬖嚬傩睦餃p分。早點(diǎn)要記得吃,如果你是下午面試的話也要吃午飯,吃早點(diǎn)了精氣神就有了。還要注意,帶上你的簡(jiǎn)歷和一支筆,雖然他們那邊也會(huì)有你的簡(jiǎn)歷,為了以防萬(wàn)一還是準(zhǔn)備好簡(jiǎn)歷。
最后,關(guān)鍵點(diǎn)來(lái)了,就是和面試官溝通了,有筆試的公司會(huì)讓你做些面試題,沒(méi)有筆試就直接和面試官聊了,下面是我和面試官溝通完之后記住的一些問(wèn)題,分享給大家看一下,筆者一共記住了7個(gè)問(wèn)題,好像還有兩個(gè)問(wèn)題實(shí)在想不起來(lái)了,如果大家有更恰當(dāng)?shù)幕卮鹨欢ㄒN出來(lái)一起探討和進(jìn)步:
1、介紹下自己?(幾乎每家公司首先都會(huì)讓你做個(gè)自我介紹,好像是必修課一樣)
筆者回答:此處省略筆者的自我介紹,筆者建議介紹自己的時(shí)間不宜過(guò)長(zhǎng),3-4分鐘為宜,說(shuō)多了面試官會(huì)覺(jué)得你太啰嗦了。說(shuō)太少了也不行,那樣會(huì)讓人感覺(jué)你的經(jīng)歷太簡(jiǎn)單了、太空了。正常情況下,一般你在做自我介紹的同時(shí),面試官這個(gè)時(shí)候在看你的簡(jiǎn)歷,他需要一邊看簡(jiǎn)歷、一邊聽(tīng)你介紹自己,如果你說(shuō)個(gè)幾句話就把自己介紹完了,他肯定還沒(méi)緩過(guò)神來(lái),對(duì)你的映像會(huì)減分的。在介紹的同時(shí)思維要清晰,邏輯要清楚,最好是根據(jù)你簡(jiǎn)歷上寫(xiě)的經(jīng)歷來(lái)介紹,這樣可以把面試官的思路帶到你這里來(lái),讓他思路跟著你走。不要東扯一句,西扯一句。竟量少介紹自己的性格、愛(ài)好(最好能不說(shuō)就不說(shuō)),你可以簡(jiǎn)單羅列干過(guò)幾家公司(最多羅列3家公司/也包含目前所在的公司,注意順序不要亂),都在那幾家公司負(fù)責(zé)什么工作,都用過(guò)什么技術(shù),在著重介紹一下你目前所在的公司是負(fù)責(zé)哪些工作的,可以稍微詳細(xì)一點(diǎn)介紹,不要讓面試官聽(tīng)著暈頭轉(zhuǎn)向的感覺(jué)。
2、灰度發(fā)布如何實(shí)現(xiàn)?
筆者回答:其實(shí)對(duì)這個(gè)問(wèn)題筆者也答的不好,就不寫(xiě)出來(lái)誤導(dǎo)大家了。大家有好的方法可以共享出來(lái)。不過(guò)筆事后在知呼上看到了一位網(wǎng)友的建議覺(jué)得不錯(cuò),大家可以參考看一下 :https://www.zhihu.com/question/20584476
3、Mongodb熟悉嗎,一般部署幾臺(tái)?
筆者回答:部署過(guò),沒(méi)有深入研究過(guò),一般mongodb部署主從、或者mongodb分片集群;建議3臺(tái)或5臺(tái)服務(wù)器來(lái)部署。MongoDB分片的基本思想就是將集合切分成小塊。這些塊分散到若干片里面,每個(gè)片只負(fù)責(zé)總數(shù)據(jù)的一部分。 對(duì)于客戶(hù)端來(lái)說(shuō),無(wú)需知道數(shù)據(jù)被拆分了,也無(wú)需知道服務(wù)端哪個(gè)分片對(duì)應(yīng)哪些數(shù)據(jù)。數(shù)據(jù)在分片之前需要運(yùn)行一個(gè)路由進(jìn)程,進(jìn)程名為mongos。這個(gè)路由器知道所有數(shù)據(jù)的存放位置,知道數(shù)據(jù)和片的對(duì)應(yīng)關(guān)系。對(duì)客戶(hù)端來(lái)說(shuō),它僅知道連接了一個(gè)普通的mongod,在請(qǐng)求數(shù)據(jù)的過(guò)程中,通過(guò)路由器上的數(shù)據(jù)和片的對(duì)應(yīng)關(guān)系,路由到目標(biāo)數(shù)據(jù)所在的片上,如果請(qǐng)求有了回應(yīng),路由器將其收集起來(lái)回送給客戶(hù)端。
4、如何發(fā)布和回滾,用jenkins又是怎么實(shí)現(xiàn)?
筆者回答:發(fā)布:jenkins配置好代碼路徑(SVN或GIT),然后拉代碼,打tag。需要編譯就編譯,編譯之后推送到發(fā)布服務(wù)器(jenkins里面可以調(diào)腳本),然后從分發(fā)服務(wù)器往下分發(fā)到業(yè)務(wù)服務(wù)器上。
回滾:按照版本號(hào)到發(fā)布服務(wù)器找到對(duì)應(yīng)的版本推送
5、Tomcat工作模式?
筆者回答:Tomcat是一個(gè)JSP/Servlet容器。其作為Servlet容器,有三種工作模式:獨(dú)立的Servlet容器、進(jìn)程內(nèi)的Servlet容器和進(jìn)程外的Servlet容器。
進(jìn)入Tomcat的請(qǐng)求可以根據(jù)Tomcat的工作模式分為如下兩類(lèi):
Tomcat作為應(yīng)用程序服務(wù)器:請(qǐng)求來(lái)自于前端的web服務(wù)器,這可能是Apache, IIS, Nginx等;
Tomcat作為獨(dú)立服務(wù)器:請(qǐng)求來(lái)自于web瀏覽器;
6、監(jiān)控用什么實(shí)現(xiàn)的?
筆者回答:現(xiàn)在公司的業(yè)務(wù)都跑在阿里云上,我們首選的監(jiān)控就是用阿里云監(jiān)控,阿里云監(jiān)控自帶了ECS、RDS等服務(wù)的監(jiān)控模板,可結(jié)合自定義報(bào)警規(guī)則來(lái)觸發(fā)監(jiān)控項(xiàng)。上家公司的業(yè)務(wù)是托管在IDC,用的是zabbix監(jiān)控方案,zabbix圖形界面豐富,也自帶很多監(jiān)控模板,特別是多個(gè)分區(qū)、多個(gè)網(wǎng)卡等自動(dòng)發(fā)現(xiàn)并進(jìn)行監(jiān)控做得非常不錯(cuò),不過(guò)需要在每臺(tái)客戶(hù)機(jī)(被監(jiān)控端)安裝zabbix agent。
7、你是怎么備份數(shù)據(jù)的,包括數(shù)據(jù)庫(kù)備份?
筆者回答:在生產(chǎn)環(huán)境下,不管是應(yīng)用數(shù)據(jù)、還是數(shù)據(jù)庫(kù)數(shù)據(jù)首先在部署的時(shí)候就會(huì)有主從架構(gòu)、或者集群,這本身就是屬于數(shù)據(jù)的熱備份;其實(shí)考慮冷備份,用專(zhuān)門(mén)一臺(tái)服務(wù)器做為備份服務(wù)器,比如可以用rsync+inotify配合計(jì)劃任務(wù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的冷備份,如果是發(fā)版的包備份,正常情況下有臺(tái)發(fā)布服務(wù)器,每次發(fā)版都會(huì)保存好發(fā)版的包。
總結(jié)一下面試注意幾點(diǎn)事項(xiàng),可能筆者也說(shuō)得不太對(duì),為了我們運(yùn)維工作的兄弟們都能拿到高薪,大家一定要指證出來(lái)一起進(jìn)步、一起探討:
第一,你要對(duì)自己的簡(jiǎn)歷很熟悉,簡(jiǎn)歷上的寫(xiě)的技能自己一定要能說(shuō)出個(gè)一二,因?yàn)槊嬖嚬俚暮芏鄦?wèn)題都會(huì)挑你簡(jiǎn)歷上寫(xiě)的問(wèn)。比如你簡(jiǎn)歷上寫(xiě)了這么一條技能“熟悉mysql數(shù)據(jù)庫(kù)的部署安裝及原理”。你即然寫(xiě)了這么一條技能,你在怎么不熟悉你也要了解mysql的原理,能說(shuō)出個(gè)大概意思。萬(wàn)一面試官問(wèn)到了你寫(xiě)的這一條,你都答不上來(lái),那在他心里你又減分了,基本上這次面試希望不大。
第二,如果面試官問(wèn)到你不會(huì)的問(wèn)題,你就說(shuō)這個(gè)不太熟悉,沒(méi)有具體研究過(guò),千萬(wàn)別不懂裝懂,還扯一堆沒(méi)用的話題來(lái)掩飾,這樣只會(huì)讓面試官反感你。
第三,準(zhǔn)備充分,竟可能多的記住原理性的知識(shí),一般面試問(wèn)的多的就是原理。很少問(wèn)具體的配置文件是怎么配置的。面試前也要了解清楚“職位描述”和“崗位要求”,雖然有時(shí)候大多數(shù)不會(huì)問(wèn)到崗位要求的問(wèn)題,但也要了解和熟悉。
第四,面試完后一定要總結(jié),盡量記住面試官問(wèn)的每一個(gè)問(wèn)題,回去記錄下來(lái),如果問(wèn)到不會(huì)的問(wèn)題,事后要立馬查百度或者找朋友搞清楚、弄明白,這樣你才能記勞,下次面試說(shuō)不定又問(wèn)到同樣的問(wèn)題。
問(wèn)完之后,面試官就跟我聊薪資待遇了,問(wèn)我多少錢(qián)能達(dá)到自己的要求,我就不便透露了,可以私聊,哈哈,后續(xù)筆者會(huì)陸陸續(xù)續(xù)更新以前面試的經(jīng)歷和問(wèn)題,有需要的朋友可以轉(zhuǎn)載或者收藏起來(lái)一起討論。
2017年2月24號(hào)面試
基于大家熱情高昂的氣氛,筆者又花了一個(gè)下午的時(shí)間回憶并整理在2017年2月24號(hào)筆者在東三環(huán)邊上(快到東四環(huán)了,沒(méi)有地鐵過(guò)去,到了四惠還要轉(zhuǎn)公交車(chē))的一家傳媒公司的面試經(jīng)歷,還好筆者有做筆記的習(xí)慣,把之前面試的問(wèn)題都記錄在案,這一次的面試筆者可是記憶猶新,因?yàn)檫@次這家公司都跟筆者發(fā)offer了,實(shí)在是真心不想去這家公司就找原因推掉了,大家可別學(xué)我這么不靠譜。下面是這家公司中的崗位要求說(shuō)明:
崗位職責(zé):
1、負(fù)責(zé)公司產(chǎn)品的版本控制、構(gòu)建和發(fā)布管理;
2、負(fù)責(zé)公司統(tǒng)一配置庫(kù)管理工作,權(quán)限管理與分配準(zhǔn)確及時(shí),定期完成配置備份;
3、負(fù)責(zé)公司內(nèi)部開(kāi)發(fā)/測(cè)試服務(wù)器的運(yùn)行管理工作;
4、負(fù)責(zé)Linux操作系統(tǒng)的安裝、配置、監(jiān)控和維護(hù)、問(wèn)題處理、軟件升級(jí)、 數(shù)據(jù)備份、應(yīng)急響應(yīng)、故障排除等、保證線上環(huán)境的穩(wěn)定運(yùn)行;
5、負(fù)責(zé)支撐平臺(tái)24×7穩(wěn)定運(yùn)行,并進(jìn)行前瞻性容量規(guī)劃;
6、負(fù)責(zé)公司機(jī)房服務(wù)器日常維護(hù)及網(wǎng)絡(luò)系統(tǒng)安裝、部署、維護(hù)工作。
崗位要求:
1、計(jì)算機(jī)相關(guān)專(zhuān)業(yè)本科及以上學(xué)歷,2年以上運(yùn)維或配置管理工作經(jīng)驗(yàn);
2、至少熟悉一種監(jiān)控系統(tǒng)搭建,如Nagios/Zabbix/等;
3、至少熟悉一種集群管理工具,如Ansible/SaltStack等;
4、有使用集成發(fā)布工具發(fā)布構(gòu)建經(jīng)驗(yàn)優(yōu)先。比如:bamboo或者Jenkins;
5、熟悉Unix/Linux操作系統(tǒng),熟悉Weblogic/tomcat等中間件,能夠編寫(xiě)shell腳本,熟悉軟件開(kāi)發(fā)過(guò)程及過(guò)程產(chǎn)品,有一定的網(wǎng)絡(luò)基礎(chǔ);
6、熟悉rsyslog, flume等日志收集和處理系統(tǒng);
7、具有強(qiáng)烈的安全意識(shí)及較強(qiáng)的溝通協(xié)調(diào)和學(xué)習(xí)能力,良好的團(tuán)隊(duì)合作精神,工作積極主動(dòng)。
過(guò)去之后,前臺(tái)美眉把我?guī)У剿麄児镜牡叵率?,我掃視了一下周?chē)沫h(huán)境,貌似旁邊就是機(jī)房,因?yàn)槲衣?tīng)到服務(wù)器的聲音。等了幾分鐘,面試官下來(lái)了,面試官目測(cè)比較瘦,看著跟我身材差不多(應(yīng)該不到120),他說(shuō)他是負(fù)責(zé)運(yùn)維部的,然后開(kāi)始就叫我先自我介紹,都是一個(gè)套路,免不了介紹的,所以兄弟們一定要把自我介紹練好。然后開(kāi)始問(wèn)我問(wèn)題了,跟面試官聊得還行,問(wèn)我應(yīng)該有不下10個(gè)以上的問(wèn)題,我記住了下面有10個(gè)問(wèn)題:
1、LVS負(fù)載的原理,和Nginx負(fù)載有啥區(qū)別?
筆者回答:這個(gè)問(wèn)題我覺(jué)得面試官司沒(méi)問(wèn)好,正常都會(huì)這么問(wèn)“LVS有哪些負(fù)載均衡技術(shù)和調(diào)度算法?“。我回答就是按我說(shuō)的這種問(wèn)法回答的,反正他也頻繁點(diǎn)頭,當(dāng)然,筆者回答的可能沒(méi)有下面我整理出來(lái)的那么詳細(xì),大概意思我都說(shuō)明白了。
LVS是Liunx虛擬服務(wù)器的簡(jiǎn)稱(chēng),利用LVS提供的負(fù)載均衡技術(shù)和linux操作系統(tǒng)可實(shí)現(xiàn)高性能、高可用的服務(wù)器集群,一般LVS都是位于整個(gè)集群系統(tǒng)的最前端,由一臺(tái)或者多臺(tái)負(fù)載調(diào)度器(Director Server)組成,分發(fā)給應(yīng)用服務(wù)器(Real Server)。它是工作在4層(也就是TCP/IP中的傳輸層),LVS是基于IP負(fù)載均衡技術(shù)的IPVS模塊來(lái)實(shí)現(xiàn)的,IPVS實(shí)現(xiàn)負(fù)載均衡機(jī)制有三種,分別是NAT、TUN和DR,詳述如下:
? VS/NAT: 即(Virtual Server via Network Address Translation)
也就是網(wǎng)絡(luò)地址翻譯技術(shù)實(shí)現(xiàn)虛擬服務(wù)器,當(dāng)用戶(hù)請(qǐng)求到達(dá)調(diào)度器時(shí),調(diào)度器將請(qǐng)求報(bào)文的目標(biāo)地址(即虛擬IP地址)改寫(xiě)成選定的Real Server地址,同時(shí)報(bào)文的目標(biāo)端口也改成選定的Real Server的相應(yīng)端口,最后將報(bào)文請(qǐng)求發(fā)送到選定的Real Server。在服務(wù)器端得到數(shù)據(jù)后,Real Server返回?cái)?shù)據(jù)給用戶(hù)時(shí),需要再次經(jīng)過(guò)負(fù)載調(diào)度器將報(bào)文的源地址和源端口改成虛擬IP地址和相應(yīng)端口,然后把數(shù)據(jù)發(fā)送給用戶(hù),完成整個(gè)負(fù)載調(diào)度過(guò)程。
可以看出,在NAT方式下,用戶(hù)請(qǐng)求和響應(yīng)報(bào)文都必須經(jīng)過(guò)Director Server地址重寫(xiě),當(dāng)用戶(hù)請(qǐng)求越來(lái)越多時(shí),調(diào)度器的處理能力將稱(chēng)為瓶頸。
? VS/TUN :即(Virtual Server via IP Tunneling)
也就是IP隧道技術(shù)實(shí)現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT方式一樣,只是它的報(bào)文轉(zhuǎn)發(fā)方法不同,VS/TUN方式中,調(diào)度器采用IP隧道技術(shù)將用戶(hù)請(qǐng)求轉(zhuǎn)發(fā)到某個(gè)Real Server,而這個(gè)Real Server將直接響應(yīng)用戶(hù)的請(qǐng)求,不再經(jīng)過(guò)前端調(diào)度器,此外,對(duì)Real Server的地域位置沒(méi)有要求,可以和Director Server位于同一個(gè)網(wǎng)段,也可以是獨(dú)立的一個(gè)網(wǎng)絡(luò)。因此,在TUN方式中,調(diào)度器將只處理用戶(hù)的報(bào)文請(qǐng)求,集群系統(tǒng)的吞吐量大大提高。
? VS/DR: 即(Virtual Server via Direct Routing)
也就是用直接路由技術(shù)實(shí)現(xiàn)虛擬服務(wù)器。它的連接調(diào)度和管理與VS/NAT和VS/TUN中的一樣,但它的報(bào)文轉(zhuǎn)發(fā)方法又有不同,VS/DR通過(guò)改寫(xiě)請(qǐng)求報(bào)文的MAC地址,將請(qǐng)求發(fā)送到Real Server,而Real Server將響應(yīng)直接返回給客戶(hù),免去了VS/TUN中的IP隧道開(kāi)銷(xiāo)。這種方式是三種負(fù)載調(diào)度機(jī)制中性能最高最好的,但是必須要求Director Server與Real Server都有一塊網(wǎng)卡連在同一物理網(wǎng)段上。
回答負(fù)載調(diào)度算法,IPVS實(shí)現(xiàn)在八種負(fù)載調(diào)度算法,我們常用的有四種調(diào)度算法(輪叫調(diào)度、加權(quán)輪叫調(diào)度、最少鏈接調(diào)度、加權(quán)最少鏈接調(diào)度)。一般說(shuō)了這四種就夠了,也不會(huì)需要你詳細(xì)解釋這四種算法的。你只要把上面3種負(fù)載均衡技術(shù)講明白面試官就對(duì)這道問(wèn)題很滿意了。接下來(lái)你在簡(jiǎn)單說(shuō)下與nginx的區(qū)別:
LVS的優(yōu)點(diǎn):
抗負(fù)載能力強(qiáng)、工作在第4層僅作分發(fā)之用,沒(méi)有流量的產(chǎn)生,這個(gè)特點(diǎn)也決定了它在負(fù)載均衡軟件里的性能最強(qiáng)的;無(wú)流量,同時(shí)保證了均衡器IO的性能不會(huì)受到大流量的影響;
工作穩(wěn)定,自身有完整的雙機(jī)熱備方案,如LVS+Keepalived和LVS+Heartbeat;
應(yīng)用范圍比較廣,可以對(duì)所有應(yīng)用做負(fù)載均衡;
配置性比較低,這是一個(gè)缺點(diǎn)也是一個(gè)優(yōu)點(diǎn),因?yàn)闆](méi)有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯(cuò)的幾率。
LVS的缺點(diǎn):
軟件本身不支持正則處理,不能做動(dòng)靜分離,這就凸顯了Nginx/HAProxy+Keepalived的優(yōu)勢(shì)。
如果網(wǎng)站應(yīng)用比較龐大,LVS/DR+Keepalived就比較復(fù)雜了,特別是后面有Windows Server應(yīng)用的機(jī)器,實(shí)施及配置還有維護(hù)過(guò)程就比較麻煩,相對(duì)而言,Nginx/HAProxy+Keepalived就簡(jiǎn)單一點(diǎn)
Nginx的優(yōu)點(diǎn):
工作在OSI第7層,可以針對(duì)http應(yīng)用做一些分流的策略。比如針對(duì)域名、目錄結(jié)構(gòu)。它的正則比HAProxy更為強(qiáng)大和靈活;
Nginx對(duì)網(wǎng)絡(luò)的依賴(lài)非常小,理論上能ping通就就能進(jìn)行負(fù)載功能,這個(gè)也是它的優(yōu)勢(shì)所在;
Nginx安裝和配置比較簡(jiǎn)單,測(cè)試起來(lái)比較方便;
可以承擔(dān)高的負(fù)載壓力且穩(wěn)定,一般能支撐超過(guò)幾萬(wàn)次的并發(fā)量;
Nginx可以通過(guò)端口檢測(cè)到服務(wù)器內(nèi)部的故障,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼、超時(shí)等等,并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn);
Nginx不僅僅是一款優(yōu)秀的負(fù)載均衡器/反向代理軟件,它同時(shí)也是功能強(qiáng)大的Web應(yīng)用服務(wù)器。LNMP現(xiàn)在也是非常流行的web環(huán)境,大有和LAMP環(huán)境分庭抗禮之勢(shì),Nginx在處理靜態(tài)頁(yè)面、特別是抗高并發(fā)方面相對(duì)apache有優(yōu)勢(shì);
Nginx現(xiàn)在作為Web反向加速緩存越來(lái)越成熟了,速度比傳統(tǒng)的Squid服務(wù)器更快,有需求的朋友可以考慮用其作為反向代理加速器;
Nginx的缺點(diǎn):
Nginx不支持url來(lái)檢測(cè)。
Nginx僅能支持http和Email,這個(gè)它的弱勢(shì)。
Nginx的Session的保持,Cookie的引導(dǎo)能力相對(duì)欠缺。
2、redis集群的原理,redis分片是怎么實(shí)現(xiàn)的,你們公司redis用在了哪些環(huán)境?
筆者回答:reids集群原理:
其實(shí)它的原理不是三兩句話能說(shuō)明白的,redis 3.0版本之前是不支持集群的,官方推薦最大的節(jié)點(diǎn)數(shù)量為1000,至少需要3(Master)+3(Slave)才能建立集群,是無(wú)中心的分布式存儲(chǔ)架構(gòu),可以在多個(gè)節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)共享,解決了Redis高可用、可擴(kuò)展等問(wèn)題。集群可以將數(shù)據(jù)自動(dòng)切分(split)到多個(gè)節(jié)點(diǎn),當(dāng)集群中的某一個(gè)節(jié)點(diǎn)故障時(shí),redis還可以繼續(xù)處理客戶(hù)端的請(qǐng)求。
redis分片:
分片(partitioning)就是將你的數(shù)據(jù)拆分到多個(gè) Redis 實(shí)例的過(guò)程,這樣每個(gè)實(shí)例將只包含所有鍵的子集。當(dāng)數(shù)據(jù)量大的時(shí)候,把數(shù)據(jù)分散存入多個(gè)數(shù)據(jù)庫(kù)中,減少單節(jié)點(diǎn)的連接壓力,實(shí)現(xiàn)海量數(shù)據(jù)存儲(chǔ)。分片部署方式一般分為以下三種:
(1)在客戶(hù)端做分片;這種方式在客戶(hù)端確定要連接的redis實(shí)例,然后直接訪問(wèn)相應(yīng)的redis實(shí)例;
(2)在代理中做分片;這種方式中,客戶(hù)端并不直接訪問(wèn)redis實(shí)例,它也不知道自己要訪問(wèn)的具體是哪個(gè)redis實(shí)例,而是由代理轉(zhuǎn)發(fā)請(qǐng)求和結(jié)果;其工作過(guò)程為:客戶(hù)端先將請(qǐng)求發(fā)送給代理,代理通過(guò)分片算法確定要訪問(wèn)的是哪個(gè)redis實(shí)例,然后將請(qǐng)求發(fā)送給相應(yīng)的redis實(shí)例,redis實(shí)例將結(jié)果返回給代理,代理最后將結(jié)果返回給客戶(hù)端。
(3)在redis服務(wù)器端做分片;這種方式被稱(chēng)為“查詢(xún)路由”,在這種方式中客戶(hù)端隨機(jī)選擇一個(gè)redis實(shí)例發(fā)送請(qǐng)求,如果所請(qǐng)求的內(nèi)容不再當(dāng)前redis實(shí)例中它會(huì)負(fù)責(zé)將請(qǐng)求轉(zhuǎn)交給正確的redis實(shí)例,也有的實(shí)現(xiàn)中,redis實(shí)例不會(huì)轉(zhuǎn)發(fā)請(qǐng)求,而是將正確redis的信息發(fā)給客戶(hù)端,由客戶(hù)端再去向正確的redis實(shí)例發(fā)送請(qǐng)求。
redis用在了哪些環(huán)境:
java、php環(huán)境用到了redis,主要緩存有登錄用戶(hù)信息數(shù)據(jù)、設(shè)備詳情數(shù)據(jù)、會(huì)員簽到數(shù)據(jù)等
3、你會(huì)怎么統(tǒng)計(jì)當(dāng)前訪問(wèn)的IP,并排序?
筆者回答:統(tǒng)計(jì)用戶(hù)的訪問(wèn)IP,用awk結(jié)合uniq、sort過(guò)濾access.log日志就能統(tǒng)計(jì)并排序好。一般這么回答就夠了,當(dāng)然你還可以說(shuō)出其它方式來(lái)統(tǒng)計(jì),這都是你的加分項(xiàng)。
4、你會(huì)使用哪些虛擬化技術(shù)?
筆者回答:vmware vsphere及kvm,我用得比較多的是vmware vsphere虛擬化,幾本上生產(chǎn)環(huán)境都用的vmware vsphere,kvm我是用在測(cè)試環(huán)境中使用。vmware 是屬于原生架構(gòu)虛擬化技術(shù),也就是可直接在硬件上運(yùn)行。kvm屬于寄居架構(gòu)的虛擬化技術(shù),它是依托在系統(tǒng)之上運(yùn)行。vmware vcenter
管理上比較方便,圖形管理界面功能很強(qiáng)大,穩(wěn)定性強(qiáng),一般比較適合企業(yè)使用。KVM管理界面稍差點(diǎn),需要管理人員花費(fèi)點(diǎn)時(shí)間學(xué)習(xí)它的維護(hù)管理技術(shù)。
5、假如有人反應(yīng),調(diào)取后端接口時(shí)特別慢,你會(huì)如何排查?
筆者回答:其實(shí)這種問(wèn)題都沒(méi)有具體答案,只是看你回答的內(nèi)容與面試官契合度有多高,能不能說(shuō)到他想要的點(diǎn)上,主要是看你排查問(wèn)題的思路。我是這么說(shuō)的:?jiǎn)柷宄磻?yīng)的人哪個(gè)服務(wù)應(yīng)用或者頁(yè)面調(diào)取哪個(gè)接口慢,叫他把頁(yè)面或相關(guān)的URL發(fā)給你,首先,最直觀的分析就是用瀏覽器按F12,看下是哪一塊的內(nèi)容過(guò)慢(DNS解析、網(wǎng)絡(luò)加載、大圖片、還是某個(gè)文件內(nèi)容等),如果有,就對(duì)癥下藥去解決(圖片慢就優(yōu)化圖片、網(wǎng)絡(luò)慢就查看內(nèi)網(wǎng)情況等)。其次,看后端服務(wù)的日志,其實(shí)大多數(shù)的問(wèn)題看相關(guān)日志是最有效分析,最好用tail -f 跟蹤一下日志,當(dāng)然你也要點(diǎn)擊測(cè)試來(lái)訪問(wèn)接口日志才會(huì)打出來(lái)。最后,排除sql,,找到sql去mysql執(zhí)行一下,看看時(shí)間是否很久,如果很久,就要優(yōu)化SQL問(wèn)題了,expain一下SQL看看索引情況啥的,針對(duì)性?xún)?yōu)化。數(shù)據(jù)量太大的能分表就分表,能分庫(kù)就分庫(kù)。如果SQL沒(méi)啥問(wèn)題,那可能就是寫(xiě)的邏輯代碼的問(wèn)題了,一行行審代碼,找到耗時(shí)的地方改造,優(yōu)化邏輯。
6、mysql數(shù)據(jù)庫(kù)用的是主從讀寫(xiě)分離,主庫(kù)寫(xiě),從庫(kù)讀,假如從庫(kù)無(wú)法讀取了、或者從庫(kù)讀取特別慢,你會(huì)如何解決?
筆者回答:這個(gè)問(wèn)題筆者覺(jué)得回答的不太好,對(duì)mysql比較在行的朋友希望能給點(diǎn)建議。以解決問(wèn)題為前提條件,先添加從庫(kù)數(shù)量,臨時(shí)把問(wèn)題給解決,然后抓取slow log ,分析sql語(yǔ)句,該優(yōu)化就優(yōu)化處理。慢要不就是硬件跟不上,需要升級(jí);要不就是軟件需要調(diào)試優(yōu)化,等問(wèn)題解決在細(xì)化。
7、cpu單核和多核有啥區(qū)別?
筆者回答:很少有面試官會(huì)問(wèn)這樣的問(wèn)題,即然問(wèn)到了,也要老實(shí)回答。還好筆者之前了解過(guò)CPU,我是這么說(shuō)的:雙核CPU就是能處理多份任務(wù),順序排成隊(duì)列來(lái)處理。單核CPU一次處理一份任務(wù),輪流處理每個(gè)程序任務(wù)。雙核的優(yōu)勢(shì)不是頻率,而是對(duì)付同時(shí)處理多件事情。單核同時(shí)只能干一件事,比如你同時(shí)在后臺(tái)BT下載,前臺(tái)一邊看電影一邊拷貝文件一邊QQ。
8、機(jī)械磁盤(pán)和固態(tài)硬盤(pán)有啥區(qū)別?
筆者回答:我擦,啥年代了,還問(wèn)磁盤(pán)的問(wèn)題,這面試官有點(diǎn)逗啊。那也要回答?。?/p>
HDD代表機(jī)械硬盤(pán),SSD代表固態(tài)硬盤(pán)。首先,從性能方面來(lái)說(shuō),固態(tài)硬盤(pán)幾乎完勝機(jī)械硬盤(pán),固態(tài)硬盤(pán)的讀寫(xiě)速度肯定要快機(jī)械硬盤(pán),因?yàn)楣虘B(tài)硬盤(pán)和機(jī)械硬盤(pán)的構(gòu)造是完全不同的(具體的構(gòu)造就沒(méi)必要解釋了)。其次,固態(tài)盤(pán)幾乎沒(méi)有噪音、而機(jī)械盤(pán)噪音比較大。還有就是,以目前的市場(chǎng)情況來(lái)看,一般機(jī)械盤(pán)容量大,價(jià)格低;固態(tài)盤(pán)容量小,價(jià)格偏高。但是企業(yè)還是首選固態(tài)盤(pán)。
9、說(shuō)一下用過(guò)哪些監(jiān)控系統(tǒng)?
筆者回答:這個(gè)監(jiān)控的問(wèn)題又問(wèn)到了,筆者在2018年1月4號(hào)也被問(wèn)到類(lèi)似這樣的問(wèn)題,筆者曾經(jīng)用過(guò)zabbix、nagios、 cacit等。但是在這次面試中只說(shuō)用過(guò)zabbix和nagios。說(shuō)完了之后,面試官就讓我說(shuō)一下這兩個(gè)監(jiān)控有啥區(qū)別:
從web功能及畫(huà)圖來(lái)講:
Nagios簡(jiǎn)單直觀,報(bào)警與數(shù)據(jù)都在同一頁(yè)面, 紅色即為問(wèn)題項(xiàng)。Nagios web端不要做任何配置。 Nagios需要額外安裝插件,且插件畫(huà)圖不夠美觀。
Zabbix監(jiān)控?cái)?shù)據(jù)與報(bào)警是分開(kāi)的,查看問(wèn)題項(xiàng)需要看觸發(fā)器,查看數(shù)據(jù)在最新數(shù)據(jù)查看。而且zabbix有很多其它配置項(xiàng), zabbix攜帶畫(huà)圖功能,且能手動(dòng)把多個(gè)監(jiān)控項(xiàng)集在一個(gè)圖中展示。
從監(jiān)控服務(wù)來(lái)講:
Nagios自帶的監(jiān)控項(xiàng)很少。對(duì)一些變動(dòng)的如多個(gè)分區(qū)、多個(gè)網(wǎng)卡進(jìn)行監(jiān)控時(shí)需要手動(dòng)配置。
Zabbix自帶了很多監(jiān)控內(nèi)容,感覺(jué)zabbix一開(kāi)始就為你做了很多事,特別是對(duì)多個(gè)分區(qū)、多個(gè)網(wǎng)卡等自動(dòng)發(fā)現(xiàn)并進(jìn)行監(jiān)控時(shí),那一瞬間很驚喜,很省心的感覺(jué)。
從批量配置和報(bào)警來(lái)講:
Nagios對(duì)于批量監(jiān)控主機(jī),需要用腳本在server端新增host,并拷貝service文件。 Nagios用腳本來(lái)修改所有主機(jī)的services文件,加入新增服務(wù)。
Zabbix在server端配置自動(dòng)注冊(cè)規(guī)則,配置好規(guī)則后,后續(xù)新增client端不需要對(duì)server端進(jìn)行操作。 Zabbix只需手動(dòng)在模板中新增一監(jiān)控項(xiàng)即可。
總體來(lái)講:
Nagios要花很多時(shí)間寫(xiě)插件,Zabbix要花很多時(shí)間探索功能。
Nagios更易上手,Nagios兩天弄會(huì),Zabbix兩周弄會(huì)。
Zabbix畫(huà)圖功能比Nagios更強(qiáng)大
Zabbix對(duì)于批量監(jiān)控與服務(wù)更改,操作更簡(jiǎn)潔;Nagios如果寫(xiě)好自動(dòng)化腳本后,也很簡(jiǎn)單,問(wèn)題在于寫(xiě)自動(dòng)化腳本很費(fèi)神。
10、給你一套環(huán)境,你會(huì)如何設(shè)計(jì)高可用、高并發(fā)的架構(gòu)?
筆者回答:
如果這套環(huán)境是部署在云端(比如阿里云),你就不用去考慮硬件設(shè)計(jì)的問(wèn)題??芍苯由习⒗镌频腟LB+ECS+RDS這套標(biāo)準(zhǔn)的高可用、高并發(fā)的架構(gòu)。對(duì)外服務(wù)直接上SLB負(fù)載均衡技術(shù),由阿里的SLB分發(fā)到后端的ECS主機(jī);ECS主機(jī)部署多臺(tái),應(yīng)用拆分在不同的ECS主機(jī)上,盡量細(xì)分服務(wù)。數(shù)據(jù)庫(kù)用RDS高可用版本(一主一備的經(jīng)典高可用架構(gòu))、或者用RDS金融版(一主兩備的三節(jié)點(diǎn)架構(gòu))。在結(jié)合阿里其它的服務(wù)就完全OK,業(yè)務(wù)量上來(lái)了,主機(jī)不夠用了,直橫向擴(kuò)容ECS主機(jī)搞定。
如果這套環(huán)境托管在IDC,那么你就要從硬件、軟件(應(yīng)用服務(wù))雙面去考慮了。硬件要達(dá)到高可用、高并發(fā)公司必須買(mǎi)多套網(wǎng)絡(luò)硬件設(shè)備(比如負(fù)載設(shè)備F5、防火墻、核心層交換、接入層交換)都必須要冗余,由其是在網(wǎng)絡(luò)設(shè)計(jì)上,設(shè)備之間都必須有雙線連接。設(shè)備如果都是跑的單機(jī),其中一個(gè)設(shè)備掛了,你整個(gè)網(wǎng)絡(luò)都癱瘓了,就談不上高可用、高并發(fā)了。其次在是考慮應(yīng)用服務(wù)了,對(duì)外服務(wù)我會(huì)采用成熟的開(kāi)源方案LVS+Keepalived或者Nginx+Keepalived,緩存層可以考慮redis集群及Mongodb集群,中間件等其它服務(wù)可以用kafka、zookeeper,圖片存儲(chǔ)可以用fastDFS或MFS,如果數(shù)據(jù)量大、又非常多,那么可采用hadoop這一套方案。后端數(shù)據(jù)庫(kù)可采用 “主從+MHA”。這樣一套環(huán)境下來(lái)是絕對(duì)滿足高可用、高并發(fā)的架構(gòu)。
對(duì)了,在下周一(2018年1月8號(hào))有個(gè)海外的電話面試、還有下周二(2018年1月9號(hào))有個(gè)網(wǎng)絡(luò)運(yùn)維經(jīng)理崗位的面試,其實(shí)這個(gè)網(wǎng)絡(luò)運(yùn)維經(jīng)理職位的面試有點(diǎn)不太想去,主要是想了解一下都會(huì)問(wèn)些啥問(wèn)題,可以為大家分享出來(lái),所以請(qǐng)大家敬請(qǐng)期待吧。。。
2018年1月8號(hào)海外電話面試
一次偶然的機(jī)會(huì),筆者在一個(gè)招聘平臺(tái)中(我就不細(xì)說(shuō)哪個(gè)平臺(tái),免得有打廣告的意思)刷新崗位的時(shí)候突然看到一個(gè)新發(fā)布的崗位,仔細(xì)一看是海外的崗位,上面寫(xiě)的待遇、福利、工作內(nèi)容筆者都有點(diǎn)興趣,由于筆者也沒(méi)有嘗試過(guò)海外面試的機(jī)會(huì)和感覺(jué),所以就和發(fā)布這個(gè)崗位的獵頭聯(lián)系上了。
獵頭問(wèn)我要了簡(jiǎn)歷,并把個(gè)人信息詳細(xì)豐富了一下,比如有沒(méi)有護(hù)照、工作了多久、個(gè)人職業(yè)規(guī)劃、期望到手的薪資等等。獵頭就把我的簡(jiǎn)歷和詳細(xì)的個(gè)人信息推薦出去了,過(guò)了幾天時(shí)間,獵頭通知我簡(jiǎn)歷篩選通過(guò)了,約個(gè)時(shí)間可以進(jìn)行技術(shù)面試(電話面試),然后就這樣約在了2018年1月8號(hào)上午。
雖然這次是海外面試,但是面試官是我們?nèi)A人,和面試官在電話中將近聊了2個(gè)小時(shí)左右,筆者聊的也口干舌燥。這一次面試官將近問(wèn)了40個(gè)左右的問(wèn)題,量實(shí)大有點(diǎn)大,筆者也沒(méi)記住這么多,大概記住了30多個(gè)問(wèn)題,忘記開(kāi)錄音了,不然這些問(wèn)題都能分享出來(lái)。別看是海外的面試官,其實(shí)這次所問(wèn)的問(wèn)題在我們國(guó)內(nèi)的面試中也常常會(huì)問(wèn)到的,我們先來(lái)看一下海外的公司的崗位要求吧:
崗位職責(zé):
1、日常線上項(xiàng)目的需求處理;
2、新項(xiàng)目上線對(duì)接的相關(guān)工作;
3、日常運(yùn)維工具開(kāi)發(fā)、維護(hù)、優(yōu)化;
4、監(jiān)控業(yè)務(wù)的運(yùn)行狀態(tài),及時(shí)處理項(xiàng)目運(yùn)行中出現(xiàn)的故障,保障項(xiàng)目服務(wù)24x7穩(wěn)定運(yùn)行;
5、分析排除系統(tǒng)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、應(yīng)用等故障及錯(cuò)誤;
6、負(fù)責(zé)服務(wù)器的資源調(diào)配和系統(tǒng)安全、數(shù)據(jù)備份。
任職要求:
1. 熟悉linux操作系統(tǒng), 熟練使用一種或多種腳本語(yǔ) 言(例如 Python/Perl/Shell);
2. 熟悉至少一種共有云技術(shù),多種運(yùn)維平臺(tái)工具(Nagios, Zabbix,Puppet等)
3. 熟悉Nginx,Mysql, Redis, Keepalived, LVS等中間件的配置與調(diào)優(yōu);
4. 熟悉網(wǎng)絡(luò)部署,多種數(shù)據(jù)機(jī)房故障的發(fā)現(xiàn)和排除的工具,有做個(gè)跨機(jī)房數(shù)據(jù)同步的優(yōu)先;
5. 熟悉mysql、redis、mongoDB的安裝、維護(hù)、性能優(yōu)化;
6. 了解反向代理、負(fù)載均衡原理。
7. 有責(zé)任心,耐心,積極肯學(xué)的心態(tài)以及良好的溝通表達(dá)能力和團(tuán)隊(duì)合作精神;
其實(shí)這個(gè)要求,我在上一篇文章也說(shuō)到過(guò),大多數(shù)公司都寫(xiě)得差不多,很多公司自己懶的寫(xiě),直接照搬別的公司發(fā)出來(lái)崗位要求,所以我們只要了解它就可以了,面試的時(shí)候不一定會(huì)問(wèn)到這些崗位的要求說(shuō)明,你看這家公司沒(méi)有寫(xiě)熟悉TCP/IP,其實(shí)面試官這一次有問(wèn)到TCP/IP這個(gè)問(wèn)題的。這次技術(shù)面試后總體面試官還是比較滿意,后來(lái)獵頭通知我一面過(guò)了,準(zhǔn)備安排2018年1月11號(hào)下午進(jìn)行二面(跟我談薪資、對(duì)海外工作的想法、人生規(guī)劃等話題)。好了,不多說(shuō)了,大家自己慢慢看我和面試官聊的技術(shù)問(wèn)題吧。
1、介紹下自己?
筆者回答:不管是電話面試還是現(xiàn)場(chǎng)面試,自我介紹是避免不了的,上一篇文章我有詳細(xì)介紹這塊的內(nèi)容,這里不做解釋了,感興趣的朋友參考我上一篇文章:
總結(jié)一下:運(yùn)維工程師面試的經(jīng)歷及面試相關(guān)問(wèn)題(會(huì)持續(xù)更新)
2、為什么想著要離開(kāi)現(xiàn)在的公司?
筆者回答:雖然是面試技術(shù),但也會(huì)有很多面試官會(huì)不經(jīng)意的問(wèn)你這個(gè)問(wèn)題,看起來(lái)很隨意的問(wèn)題,其實(shí)這個(gè)問(wèn)題里面隱藏了很多信息,最直觀的就是看你這個(gè)人對(duì)企業(yè)的忠誠(chéng)度、還能看你是不是心浮氣燥的性格等等。如果你曾經(jīng)頻繁跳過(guò)槽,不管出于什么原因,筆者個(gè)人都不建議寫(xiě)在簡(jiǎn)歷上,最好能夠合并一些工作時(shí)間和單位,企業(yè)是很擔(dān)心把你招來(lái)后會(huì)不會(huì)短時(shí)間你又跳槽了。當(dāng)然如果都是因?yàn)槠髽I(yè)經(jīng)營(yíng)不善倒閉所至,就沒(méi)關(guān)系了。說(shuō)到這里,就想起了筆者曾經(jīng)一位同事,連續(xù)在好幾家單位都干倒閉了,這我也不知道說(shuō)啥好了。。。好了,咋們接著往下走。
3、TCP/IP原理說(shuō)一下?TCP有哪幾個(gè)狀態(tài),分別是什么意思?
筆者回答:以tcp/ip協(xié)議為核心,分五層。tcp工作在第4層,主要有tcp和udp協(xié)議。其中tcp是可靠協(xié)議,udp是不可靠協(xié)議。 tcp傳輸之前,需要建立連接,通過(guò)三次握手實(shí)現(xiàn)。
TCP三次握手狀態(tài):首先是closed狀態(tài),當(dāng)發(fā)起連接后,進(jìn)入Listen狀態(tài),當(dāng)三次握手之后,進(jìn)入EST狀態(tài)。三次握手中間還有一個(gè)臨時(shí)狀態(tài):SYN_SENT。SYN_SENT 當(dāng)應(yīng)用程序發(fā)送ack之后,進(jìn)入EST狀態(tài),如果沒(méi)有發(fā)送,就關(guān)閉closed.
總結(jié):大家一定要熟記tcp狀態(tài)轉(zhuǎn)換圖,參考 http://blog.csdn.net/wenqian1991/article/details/40110703 如下圖:
image.png
4、有個(gè)客戶(hù)說(shuō)訪問(wèn)不到你們的網(wǎng)站,但是你們自己測(cè)試內(nèi)網(wǎng)和外網(wǎng)訪問(wèn)都沒(méi)問(wèn)題。你會(huì)怎么排查并解決客戶(hù)的問(wèn)題?
筆者回答:我們自己測(cè)了都沒(méi)問(wèn)題,只是這個(gè)客戶(hù)訪問(wèn)有問(wèn)題,那肯定是要先聯(lián)系到這個(gè)客戶(hù),能遠(yuǎn)程最好,問(wèn)一下客戶(hù)的網(wǎng)絡(luò)是不是正常的,訪問(wèn)其它的網(wǎng)站有沒(méi)有問(wèn)題(比如京東、百度什么的)。如果訪問(wèn)其它網(wǎng)站有問(wèn)題,那叫客戶(hù)解決本身網(wǎng)絡(luò)問(wèn)題。如果訪問(wèn)其它網(wǎng)站都沒(méi)問(wèn)題,用ping和nslookup解析一下我們的網(wǎng)站是不是正常的,讓客戶(hù)用IP來(lái)訪問(wèn)我們的網(wǎng)站是否可行,如果IP訪問(wèn)沒(méi)問(wèn)題,那就是客戶(hù)的DNS服務(wù)器有問(wèn)題或者DNS服務(wù)器解析不到我們的網(wǎng)站。還有一種可能就是跨運(yùn)營(yíng)商訪問(wèn)的問(wèn)題,比如我們的服務(wù)器用的是北方聯(lián)通、而客戶(hù)用的是南方移動(dòng),就也有可能突然在某個(gè)時(shí)間段訪問(wèn)不到,這種情況在龐大的中國(guó)網(wǎng)絡(luò)環(huán)境中經(jīng)常發(fā)生(一般是靠CDN解決)。還有可能就是我們的網(wǎng)站沒(méi)有SSL證書(shū),在公網(wǎng)是使用的是http協(xié)議,這種情況有可能就是沒(méi)有用https協(xié)議網(wǎng)站被運(yùn)營(yíng)商劫持了。
5、redhat 6.X版本系統(tǒng) 和 centos 7.X版本有啥區(qū)別?
筆者回答:桌面系統(tǒng)(6/GNOE2.x、7/GNOME3.x)、文件系統(tǒng)(6/ext4、7/xfs)、內(nèi)核版本(6/2.6x、7/3.10x)、防火墻(6/iptables、7/firewalld)、默認(rèn)數(shù)據(jù)庫(kù)(6/mysql、7/mariadb)、啟動(dòng)服務(wù)(6/service啟動(dòng)、7/systemctl啟動(dòng))、網(wǎng)卡(6/eth0、7/ens192)等。
6、你會(huì)用什么方法查看某個(gè)應(yīng)用服務(wù)的流量使用情況?
筆者回答:如果是單一應(yīng)用的服務(wù)器,只需要用iftop、sar等工具統(tǒng)計(jì)網(wǎng)卡流量就可以。如果服務(wù)器跑了多個(gè)應(yīng)用,可以使用nethogs工具實(shí)現(xiàn),它的特別之處在于可以顯示每個(gè)進(jìn)程的帶寬占用情況,這樣可以更直觀獲取網(wǎng)絡(luò)使用情況。
7、說(shuō)一下你們公司怎么發(fā)版的(代碼怎么發(fā)布的)?
筆者回答:我說(shuō)什么來(lái)著,這個(gè)問(wèn)題又問(wèn)到了。發(fā)布:jenkins配置好代碼路徑(SVN或GIT),然后拉代碼,打tag。需要編譯就編譯,編譯之后推送到發(fā)布服務(wù)器(jenkins里面可以調(diào)腳本),然后從分發(fā)服務(wù)器往下分發(fā)到業(yè)務(wù)服務(wù)器上。
8、elk中的logstash是怎么收集日志的,在客戶(hù)端的logstash配置文件主要有哪些內(nèi)容?
筆者回答:input、output兩大塊配置;input中指定日志(type、path)等,output指定日志輸出的目標(biāo)(host、port)等。
9、ansible你用過(guò)它的哪些模塊,ansbile同時(shí)分發(fā)多臺(tái)服務(wù)器的過(guò)程很慢(它是逐臺(tái)分發(fā)的),你想過(guò)怎么解決嗎?
筆者回答:用過(guò)ansible的(copy file yum ping command shell)等模塊;ansible默認(rèn)只會(huì)創(chuàng)建5個(gè)進(jìn)程,所以一次任務(wù)只能同時(shí)控制5臺(tái)機(jī)器執(zhí)行。那如果你有大量的機(jī)器需要控制,或者你希望減少進(jìn)程數(shù),那你可以采取異步執(zhí)行.ansible的模塊可以把task放進(jìn)后臺(tái),然后輪詢(xún)它。這使得在一定進(jìn)程數(shù)下能讓大量需要的機(jī)器同時(shí)運(yùn)作起來(lái)。
10、nginx有哪幾種調(diào)度算法,解釋一下ip hash和輪詢(xún)有啥不一樣?
筆者回答:常用的有3種調(diào)度算法(輪詢(xún)、ip hash、權(quán)重)。
輪詢(xún):upstream按照輪詢(xún)(默認(rèn))方式進(jìn)行負(fù)載,每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除。
ip hash:每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題。
權(quán)重:指定輪詢(xún)幾率,權(quán)重(weight)和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況。
11、nginx你用到了哪些模塊,在proxy模塊中你配置過(guò)哪些參數(shù)?
筆者回答:用到過(guò)(負(fù)載均衡upstream、反向代理proxy_pass、location、rewrite等)。
proxy模塊中配置過(guò):proxy_set_header、proxy_connect_timeout、proxy_send_timeout、proxy_buffer_*
12、說(shuō)一下iptables的原理,有哪些表、哪些鏈?怎么修改默認(rèn)策略全部為DROP?
筆者回答:iptables是工作在TCP/IP的2、3、4層。你要說(shuō)它的原理也不是幾話能概括的,當(dāng)主機(jī)收到一個(gè)數(shù)據(jù)包后,數(shù)據(jù)包先在內(nèi)核空間中處理,若發(fā)現(xiàn)目的地址是自身,則傳到用戶(hù)空間中交給對(duì)應(yīng)的應(yīng)用程序處理,若發(fā)現(xiàn)目的不是自身,則會(huì)將包丟棄或進(jìn)行轉(zhuǎn)發(fā)。
4張表(raw表、mangle表、net表、filter表)
5條鏈(INPUT鏈、OUTPUT鏈、PORWARD鏈、PREROUTING鏈、POSTROUTING鏈)。
全部設(shè)置為DROP:
#iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#iptables -P FORWARD DROP
小結(jié):iptables遠(yuǎn)不止這幾句話就能描述清楚的,也不是隨便在網(wǎng)上趴些資料就能學(xué)好的,需要自己用起來(lái),經(jīng)過(guò)大量的實(shí)驗(yàn)和實(shí)戰(zhàn)才能熟悉它,iptables真的很考驗(yàn)運(yùn)維人員的技術(shù)水平,大家一定要用心學(xué)好這個(gè)iptables。
13、如何開(kāi)啟linux服務(wù)器路由轉(zhuǎn)發(fā)功能?
筆者回答:echo ”1“ 》 /proc/sys/net/ipv4/ip_forward
14、nginx中rewrite有哪幾個(gè)flag標(biāo)志位(last、break、redirect、permanent),說(shuō)一下都什么意思?
筆者回答:
last : 相當(dāng)于Apache的[L]標(biāo)記,表示完成當(dāng)前的rewrite規(guī)則
break : 停止執(zhí)行當(dāng)前虛擬主機(jī)的后續(xù)rewrite指令集
redirect : 返回302臨時(shí)重定向,地址欄會(huì)顯示跳轉(zhuǎn)后的地址
permanent : 返回301永久重定向,地址欄會(huì)顯示跳轉(zhuǎn)后的地址
301和302不能簡(jiǎn)單的只返回狀態(tài)碼,還必須有重定向的URL,這就是return指令無(wú)法返回301,302的原因了。這里 last 和 break 區(qū)別有點(diǎn)難以理解:
last一般寫(xiě)在server和if中,而break一般使用在location中
last不終止重寫(xiě)后的url匹配,即新的url會(huì)再?gòu)膕erver走一遍匹配流程,而break終止重寫(xiě)后匹配
break和last都能組織繼續(xù)執(zhí)行后面的rewrite指令
總結(jié):關(guān)于nginx rewrite用法,筆者看到一篇文章總結(jié)的挺不錯(cuò) ,可以參考一下 https://www.jianshu.com/p/a1fce9358d44
15、你在shell腳本中用過(guò)哪些語(yǔ)法,case語(yǔ)法會(huì)用到哪些地方?
筆者回答:一般會(huì)用到if語(yǔ)句、for語(yǔ)句、while語(yǔ)句、case語(yǔ)句以及function函數(shù)的定義;case語(yǔ)句為多選擇語(yǔ)句,可以用case語(yǔ)句匹配一個(gè)值與一個(gè)模式,如果匹配成功,執(zhí)行相匹配的命令。最典型的case語(yǔ)法會(huì)用到啟動(dòng)服務(wù)腳本的處理。
16、linux系統(tǒng)中你會(huì)用到什么命令查看硬件使用狀態(tài)信息?
筆者回答:這個(gè)命令就很多了,比如:lscpu(查看cpu信息)、free -m(查看內(nèi)存信息)、df -h(查看硬盤(pán)分區(qū)信息)、top(還可以動(dòng)態(tài)查看cpu、內(nèi)存使用情況的信息),/proc/目錄下也可以查看很多硬件信息。
17、我要過(guò)濾一段文本(test.txt)中第二列的內(nèi)容?如果這段文件有很多特殊符號(hào),比如用:(冒號(hào))怎么過(guò)濾它的第二段?如果我要過(guò)濾這段文本中,其中有一行只有7個(gè)符如何實(shí)現(xiàn)?
筆者回答: awk ‘{print $2}’ tset.txt
awk -F‘:’ ‘{print $2}’ tset.txt
18、比如開(kāi)發(fā)想找你查看tomcat日志,但是catalia.out特別大,你不可能用vi打開(kāi)去看,你會(huì)怎么查看?如果你用 grep -i”error“ 過(guò)濾只是包含error的行,我想同時(shí)過(guò)濾error上面和下面的行如何實(shí)現(xiàn)?
筆者回答:grep -i ”error“ catalia.out
grep -C 1 -i ”error“ catalia.out
參數(shù)-C:是匹配前后的行,后面1是匹配前后各1行
19、 怎么編寫(xiě)一個(gè)定時(shí)計(jì)劃任務(wù)?里面用到的最小單位是什么?
筆者回答:crontab -e,最小單位是分鐘
20、zabbix如何修改其中監(jiān)控的一臺(tái)服務(wù)器中內(nèi)存閾值信息,比如正常內(nèi)存使用到了80%報(bào)警,我想修改為60%報(bào)警?
筆者回答:正常來(lái)說(shuō),一般會(huì)把監(jiān)控的服務(wù)器統(tǒng)一加入到一個(gè)模板中,修改模板的其是某一項(xiàng)的監(jiān)控項(xiàng)參數(shù)和告警閾值后,加入模板中的所有主機(jī)都會(huì)同步。如果單獨(dú)想修改其中某一臺(tái)服務(wù)器內(nèi)存告警閾值,需要進(jìn)入這臺(tái)主機(jī),單獨(dú)創(chuàng)建一個(gè)告警Triggers,關(guān)聯(lián)這臺(tái)主機(jī)監(jiān)控內(nèi)存的項(xiàng),配置好告警的閾值為60%即可實(shí)現(xiàn)。其實(shí),zabbix一切都為圖形化操作,如果沒(méi)有接觸過(guò)zabbix的朋友,可能聽(tīng)起來(lái)不太清楚。
21、mysql主從復(fù)制原理說(shuō)一下?
筆者回答:mysql支持三種復(fù)制類(lèi)型(基于語(yǔ)句的復(fù)制、基于行的復(fù)制、混合類(lèi)開(kāi)進(jìn)的復(fù)制)。
如果你記不住太多內(nèi)容,可以簡(jiǎn)單說(shuō)明一下原理:
(1) master將改變記錄到二進(jìn)制日志(binary log)中(這些記錄叫做二進(jìn)制日志事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日志(relay log);
(3) slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。
20180112090827.jpg
如果你能詳細(xì)記住它的原理,可以這么回答:
該過(guò)程的第一部分就是master記錄二進(jìn)制日志。在每個(gè)事務(wù)更新數(shù)據(jù)完成之前,master在二日志記錄這些改變。MySQL將事務(wù)串行的寫(xiě)入二進(jìn)制日志,即使事務(wù)中的語(yǔ)句都是交叉執(zhí)行的。在事件寫(xiě)入二進(jìn)制日志完成后,master通知存儲(chǔ)引擎提交事務(wù)。
下一步就是slave將master的binary log拷貝到它自己的中繼日志。首先,slave開(kāi)始一個(gè)工作線程——I/O線程。I/O線程在master上打開(kāi)一個(gè)普通的連接,然后開(kāi)始binlog dump process。Binlog dump process從master的二進(jìn)制日志中讀取事件,如果已經(jīng)跟上master,它會(huì)睡眠并等待master產(chǎn)生新的事件。I/O線程將這些事件寫(xiě)入中繼日志。
SQL slave thread(SQL從線程)處理該過(guò)程的最后一步。SQL線程從中繼日志讀取事件,并重放其中的事件而更新slave的數(shù)據(jù),使其與master中的數(shù)據(jù)一致。只要該線程與I/O線程保持一致,中繼日志通常會(huì)位于OS的緩存中,所以中繼日志的開(kāi)銷(xiāo)很小。
22、用什么命令可以查看上一次服務(wù)器啟動(dòng)的時(shí)間、上一次誰(shuí)登錄過(guò)服務(wù)器?
筆者回答:w命令查看上次服務(wù)器啟動(dòng)時(shí)間。last命令 查看登錄。
23、redis集群原理說(shuō)一下,正常情況下mysql有多個(gè)庫(kù),redis也有多個(gè)庫(kù),我怎么進(jìn)入redis集群中的第2個(gè)庫(kù)?還有,我想查看以BOSS開(kāi)頭的值?redis持久化是如何實(shí)現(xiàn)(一種是RDS、一種是AOF),說(shuō)一下他們有啥不一樣?
筆者回答:這個(gè)redis原理的問(wèn)題又問(wèn)到了,看樣子很多面試官都很關(guān)心這個(gè)redis,在上一篇文章筆者的一次面試也有這個(gè)面試問(wèn)題。
【集群原理】:其實(shí)它的原理不是三兩句話能說(shuō)明白的,redis 3.0版本之前是不支持集群的,官方推薦最大的節(jié)點(diǎn)數(shù)量為1000,至少需要3(Master)+3(Slave)才能建立集群,是無(wú)中心的分布式存儲(chǔ)架構(gòu),可以在多個(gè)節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)共享,解決了Redis高可用、可擴(kuò)展等問(wèn)題。集群可以將數(shù)據(jù)自動(dòng)切分(split)到多個(gè)節(jié)點(diǎn),當(dāng)集群中的某一個(gè)節(jié)點(diǎn)故障時(shí),redis還可以繼續(xù)處理客戶(hù)端的請(qǐng)求。
【切庫(kù)】:?jiǎn)螜C(jī)情況下用select 2可以切換第2個(gè)庫(kù),select 1可以切換第1個(gè)庫(kù)。但是集群環(huán)境下不支持select??蓞⒖糷ttps://yq.aliyun.com/articles/69349
【redis持久化】:持久化通俗來(lái)講就是將內(nèi)存中的數(shù)據(jù)寫(xiě)入硬盤(pán)中,redis提供了兩種持久化的功能(RDB、AOF),默認(rèn)使用RDB的方式。
RDB:全量寫(xiě)入持久化,而RDB持久化也分兩種(SAVE、BGSAVE)。
SAVE是阻塞式的RDB持久化,當(dāng)執(zhí)行這個(gè)命令時(shí)redis的主進(jìn)程把內(nèi)存里的數(shù)據(jù)庫(kù)狀態(tài)寫(xiě)入到RDB文件(即上面的dump.rdb)中,直到該文件創(chuàng)建完畢的這段時(shí)間內(nèi)redis將不能處理任何命令請(qǐng)求。
BGSAVE屬于非阻塞式的持久化,它會(huì)創(chuàng)建一個(gè)子進(jìn)程專(zhuān)門(mén)去把內(nèi)存中的數(shù)據(jù)庫(kù)狀態(tài)寫(xiě)入RDB文件里,同時(shí)主進(jìn)程還可以處理來(lái)自客戶(hù)端的命令請(qǐng)求。但子進(jìn)程基本是復(fù)制的父進(jìn)程,這等于兩個(gè)相同大小的redis進(jìn)程在系統(tǒng)上運(yùn)行,會(huì)造成內(nèi)存使用率的大幅增加。
AOF:與RDB的保存整個(gè)redis數(shù)據(jù)庫(kù)狀態(tài)不同,AOF的持久化是通過(guò)命令追加、文件寫(xiě)入和文件同步三個(gè)步驟實(shí)現(xiàn)的。AOF是通過(guò)保存對(duì)redis服務(wù)端的寫(xiě)命令(如set、sadd、rpush)來(lái)記錄數(shù)據(jù)庫(kù)狀態(tài)的,即保存你對(duì)redis數(shù)據(jù)庫(kù)的寫(xiě)操作。
為了大家能夠更好的理解redis持久化,筆者建議大家可以看下這兩篇文章會(huì)比較好理解:
https://www.cnblogs.com/Fairy-02-11/p/6182478.html
http://blog.csdn.net/mishifangxiangdefeng/article/details/48977269
24、你在工作的過(guò)程中,遇到過(guò)你映像最深的是什么故障問(wèn)題,你又是如何解決?
筆者回答:這個(gè)問(wèn)題主要也是考你排查故障的思路及用到的相關(guān)命令工具,其每個(gè)人在工作中都會(huì)遇到各種各樣的問(wèn)題(不管是網(wǎng)絡(luò)問(wèn)題、應(yīng)用配置問(wèn)題、還是APP打開(kāi)慢/網(wǎng)站打開(kāi)慢)等等。你只要記住一個(gè)你映像最為深刻、最為典型的故障就行。筆者也遇到過(guò)各種問(wèn)題,我在這里就是寫(xiě)出來(lái),怕誤導(dǎo)了大家。
25、在linux服務(wù)器上,不管是用rz -y命令還是tftp工具上傳,我把本地的一個(gè)文件上傳到服務(wù)器完成后,服務(wù)器上還是什么都沒(méi)有,這有可能是什么問(wèn)題?
筆者回答:根據(jù)這種現(xiàn)象有可能是:服務(wù)器磁盤(pán)滿了;文件格式破壞了;或者你用的是普通用戶(hù)上傳,正好上傳的目錄沒(méi)有權(quán)限;還有可能就是你上傳的文件大小超出了該目錄空間的范圍。
26、你在工作中都寫(xiě)過(guò)什么腳本?
筆者回答:這個(gè)問(wèn)題的回答別把話說(shuō)得太大了,要結(jié)合實(shí)際情況來(lái)回答。寫(xiě)過(guò)mysql、redis、mongodb等數(shù)據(jù)庫(kù)備份的腳本;服務(wù)器文件備份的腳本;日常代碼發(fā)布的腳本;之前用nagios的時(shí)候?qū)戇^(guò)一些nagios插件的腳本。
27、rsync+inotify是實(shí)現(xiàn)文件實(shí)時(shí)同步的,加什么參數(shù)才能實(shí)現(xiàn)實(shí)時(shí)同步,--delete參數(shù)又是什么意思?
筆者回答:rsync是遠(yuǎn)程同步工具、inotify是一種強(qiáng)大的異步文件系統(tǒng)系統(tǒng)監(jiān)控機(jī)制。通過(guò)inotifywait 中的-m參數(shù)可以實(shí)現(xiàn)“始終保持事件監(jiān)聽(tīng)狀態(tài)”。rsync中的-delete參數(shù)是指“ 刪除那些DST中SRC沒(méi)有的文件”。
28、我想查看access.log中哪個(gè)IP訪問(wèn)最多?
筆者回答:awk ‘{print $1}’ access.log| sort | uniq -c |sort -rn -k 1 | head -1
上面的具體參數(shù)如果有不知道的,大家可以自行百度一下,這里不說(shuō)參數(shù)這么細(xì)節(jié)的問(wèn)題
29、在linux系統(tǒng)中,一般都會(huì)有swap內(nèi)存,你覺(jué)得使用swap內(nèi)存有什么好處,在什么情況下swap內(nèi)存才會(huì)被使用?你覺(jué)得在生產(chǎn)環(huán)境中要不要用swap內(nèi)存?
筆者回答:好處:在內(nèi)存不夠用的時(shí)候,將部分內(nèi)存上的數(shù)據(jù)交換到swap空間上,以便讓系統(tǒng)不會(huì)因?yàn)閮?nèi)存不夠用而導(dǎo)致oom或者更致命的情況出現(xiàn)。
什么情況下會(huì)用swap:當(dāng)系統(tǒng)的物理內(nèi)存不夠用的時(shí)候,就需要將物理內(nèi)存中的一部分空間釋放出來(lái),以供當(dāng)前運(yùn)行的程序使用。那些被釋放的空間可能來(lái)自一些很長(zhǎng)時(shí)間沒(méi)有什么操作的程序,這些被釋放的空間被臨時(shí)保存到swap空間中,等到那些程序要運(yùn)行時(shí),再?gòu)膕wap中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中。這樣,系統(tǒng)總是在物理內(nèi)存不夠時(shí),才進(jìn)行swap交換。
30、怎么查看兩臺(tái)服務(wù)器之間的網(wǎng)絡(luò)是不是正常的,服務(wù)器是禁ping的?
筆者回答:不能用ping,那可以用telnet對(duì)方服務(wù)器的端口、或者互相訪問(wèn)對(duì)方打開(kāi)的服務(wù)。其它的測(cè)試方法筆者也沒(méi)想到,要是哪位朋友有好的方法不訪在下面留言討論。
31、比如我訪問(wèn)百度網(wǎng)站,有什么方法可以跟蹤經(jīng)過(guò)了哪些網(wǎng)絡(luò)節(jié)點(diǎn)?
筆者回答:這個(gè)太簡(jiǎn)單了吧,干運(yùn)維必備的網(wǎng)絡(luò)排查技能。用tracert命令就可以跟蹤,主要是查詢(xún)本機(jī)到另一個(gè)主機(jī)經(jīng)過(guò)的路由跳數(shù)及數(shù)據(jù)延遲情況。然后你也可以把具體跟蹤后輸出的信息也說(shuō)出來(lái),你能說(shuō)出來(lái)都是為你加分的。
32、如果你們公司的網(wǎng)站訪問(wèn)很慢,你會(huì)如何排查?
筆者回答:看到?jīng)]有,又問(wèn)到了這個(gè)問(wèn)題,筆者在上一篇文章 2017年2月14號(hào)的面試中面試官也問(wèn)到同樣的問(wèn)題。其實(shí)這種問(wèn)題都沒(méi)有具體答案,只是看你回答的內(nèi)容與面試官契合度有多高,能不能說(shuō)到他想要的點(diǎn)上,主要是看你排查問(wèn)題的思路。我是這么說(shuō)的:?jiǎn)柷宄磻?yīng)的人哪個(gè)服務(wù)應(yīng)用或者頁(yè)面調(diào)取哪個(gè)接口慢,叫他把頁(yè)面或相關(guān)的URL發(fā)給你,首先,最直觀的分析就是用瀏覽器按F12,看下是哪一塊的內(nèi)容過(guò)慢(DNS解析、網(wǎng)絡(luò)加載、大圖片、還是某個(gè)文件內(nèi)容等),如果有,就對(duì)癥下藥去解決(圖片慢就優(yōu)化圖片、網(wǎng)絡(luò)慢就查看內(nèi)網(wǎng)情況等)。其次,看后端服務(wù)的日志,其實(shí)大多數(shù)的問(wèn)題看相關(guān)日志是最有效分析,最好用tail -f 跟蹤一下日志,當(dāng)然你也要點(diǎn)擊測(cè)試來(lái)訪問(wèn)接口日志才會(huì)打出來(lái)。最后,排除sql,,找到sql去mysql執(zhí)行一下,看看時(shí)間是否很久,如果很久,就要優(yōu)化SQL問(wèn)題了,expain一下SQL看看索引情況啥的,針對(duì)性?xún)?yōu)化。數(shù)據(jù)量太大的能分表就分表,能分庫(kù)就分庫(kù)。如果SQL沒(méi)啥問(wèn)題,那可能就是寫(xiě)的邏輯代碼的問(wèn)題了,一行行審代碼,找到耗時(shí)的地方改造,優(yōu)化邏輯。
33、我需要查看某個(gè)時(shí)間段的日志(比如access.log日志),如何實(shí)現(xiàn)?
筆者回答:方法有很多種,比如我要看查的時(shí)間是2018年1月9號(hào)--1月10號(hào)的日志吧。
比如可以用sed命令,格式為:sed -n ‘/起始時(shí)間/,/結(jié)束時(shí)間/p’ 日志文件,如下:
sed -n ‘/09\/Jan\/2018/,/10\/Jan\/2018/p’ access.log
比如可以用grep,格式為:grep -E ‘起始時(shí)間|結(jié)束時(shí)間’ 日志文件,如下:
grep -E ‘09/Jan/2018|10/Jan/2018’ access.log
當(dāng)然,你還可以結(jié)合cat、grep 、awk這些命令一起來(lái)使用都行。
2018年1月17號(hào):更新1月8號(hào)海外面試的結(jié)果
博友們,這段時(shí)間筆者有點(diǎn)忙,沒(méi)有及時(shí)更新1月8號(hào)那天海外面試的結(jié)果,實(shí)在抱歉了,大家肯定也都蠻期待我上次海外的面試結(jié)果。好了,長(zhǎng)話短說(shuō),上次說(shuō)了接下來(lái)會(huì)有二面,具體是哪個(gè)國(guó)外和哪個(gè)公司我就是在這里就不寫(xiě)出來(lái)了,感興趣的朋友可以單播我加我QQ或微信都行。
過(guò)了兩天,在下午3點(diǎn)鐘左右,筆者接到海外的二面來(lái)的電話,我們大概將近又聊了1個(gè)小時(shí),聽(tīng)面試官的聲音,他說(shuō)他是做java的,要跟我二面聊一下。我心里想,二面不是人資跟我談薪資待遇、談人生理想嗎?也不管那么多了,聊就聊吧,別看這小哥是做java的,還挺能聊,幾乎把我簡(jiǎn)歷上寫(xiě)的那些技能問(wèn)了個(gè)遍(什么cdn原理?、docker是什么?),這些問(wèn)題我就不寫(xiě)出來(lái)了,因?yàn)榱牡帽容^粗,不像一面問(wèn)的技術(shù)都那么細(xì)。聊完了相關(guān)技術(shù)之后,我就問(wèn)他在那邊干了多久,生活如何。
二面的面試官在那邊生活了有3年多了,看樣子他還是比較滿意,那邊包吃包住,吃飯時(shí)間比較自由,住得還不錯(cuò),安排了單間住。地方就像國(guó)內(nèi)的二線城市那么大,環(huán)境也都很好,就是消費(fèi)挺高的,比北京的消費(fèi)高的不是一點(diǎn)點(diǎn),就拿我們吃的蔬菜來(lái)說(shuō),我們國(guó)內(nèi)一斤西紅柿也就幾塊錢(qián),那邊賣(mài)60元左右人民幣1斤,什么水果都一樣,動(dòng)不動(dòng)60、70、80一斤,看著這消費(fèi)挺嚇人的??傮w來(lái)講,聊得還不錯(cuò),對(duì)我印象也蠻好,他說(shuō)后面會(huì)安排人和我三面,總算是談錢(qián)了。第二天就接到三面的電話,聊了啥也沒(méi)啥可說(shuō)的,我就直接把福利待遇和薪資分享出來(lái)吧:
吃?。喊宰?,也是住單間、吃公司食堂
薪資:到手2W人民幣/月,13薪,年底在分點(diǎn)紅啥的
工作時(shí)間:跟國(guó)內(nèi)一樣,也是雙休
年假:一年有20天左右?guī)侥昙?,可以回?guó)
五險(xiǎn)一金:國(guó)外都不繳五險(xiǎn)一金,你要自己找回內(nèi)公司代繳
機(jī)票:去工作的機(jī)票和簽證的費(fèi)用報(bào)銷(xiāo)
最后,我要把這些情況跟媳婦反應(yīng)一下,畢竟要商量著來(lái),單身漢就無(wú)所謂可以自己做主。分析了一下利弊和自己2018年的計(jì)劃之后就委婉的拒絕了海外那邊的工作。
-
運(yùn)維工程師
+關(guān)注
關(guān)注
4文章
39瀏覽量
8379
發(fā)布評(píng)論請(qǐng)先 登錄

硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
硬件工程師面試/筆試經(jīng)典 100 題

如何成為一名合格的KaihongOS南向驅(qū)動(dòng)開(kāi)發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開(kāi)發(fā)工程師
硬件工程師面試必看試題(經(jīng)典)
如何成為一名嵌入式軟件工程師?
長(zhǎng)沙怎么這么難招硬件工程師呀

如何成為一名合格的南向驅(qū)動(dòng)開(kāi)發(fā)工程師
如何成為一名合格的北向應(yīng)用開(kāi)發(fā)工程師

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技
【面試題】人工智能工程師高頻面試題匯總:機(jī)器學(xué)習(xí)深化篇(題目+答案)

【面試題】人工智能工程師高頻面試題匯總:Transformer篇(題目+答案)

人工智能工程師高頻面試題匯總——機(jī)器學(xué)習(xí)篇


評(píng)論