溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux運維基礎知識

發(fā)布時間:2020-06-05 12:41:58 來源:億速云 閱讀:569 作者:Leah 欄目:編程語言

這篇文章主要為大家分享Linux運維基礎知識。文中還介紹了Linux運維常用的工具Linux運維需要運用到的開發(fā)技術以及Linux運維面試題,希望大家通過這篇文章能有所收獲。

linux運維人員常用工具拓撲詳見:

Linux運維基礎知識
1.rsync工具

很多地方經常會用到rsync工具,實施幾臺服務器的同步效果。我們公司就是使用這個工具完成服務器的youxi的服務端和客戶端同步,有幾個文章例子:

rsync 強化技術(手動修改端口開啟防火墻的情況下)并且通過腳本只同步需要的服務器inotify+rsync+mutt+msmtp 實現(xiàn)linux文件或者目錄自動更新并且實現(xiàn)發(fā)郵件給管理員。
2.網絡服務

服務有很多種,每間公司都會用到不同的,但基礎的服務肯定要掌握,如FTP、DNS、SAMBA、郵件, 這幾個大概學一下就行,LAMP和LNMP是必須要熟練,我所指的不是光會搭建,而是要很熟悉里面的相當配置才行,因為公司最關鍵的絕對是Web服務器,所以Nginx和Apache要熟悉,特別是Nginx一定要很熟悉才行,至少有些公司還會用Tomcat,這個也最好學一下。

其實網絡服務方面不用太擔心,一般公司的環(huán)境都已經搭建好,就算有新服務器或讓你整改,公司會有相應的文檔讓你參照來弄,不會讓你亂來的,但至少相關的配置一定要學熟,而且肯定是編譯安裝多,那些模塊要熟悉一下他的作用,特別是PHP那些模塊。

這面2點只是基礎,也是必要條件,不能說是工具,以下才是真正的要掌握的工具。

Samba文件共享服務(共享腳本 讓你工作更輕松)
Linux web服務安裝apache 思路 (源碼編譯,自己定義服務)
FTP(持虛擬用戶,并且每個虛擬用戶可以具有獨立的屬性配置)
linux 下構建DHCP服務器
3.腳本語言

Shell腳本和另一個腳本語言,Shell是運維人員必須具備的,不懂這個連入職都不行,至少也要寫出一些系統(tǒng)管理腳本,最簡單也得寫個監(jiān)控CPU,內存比率的腳本吧,這是最最最基本了,別以為會寫那些猜數字和計算什么數的,這些沒什么作用,只作學習意義,寫系統(tǒng)腳本才是最有意義,而另一個腳本語言是可選的,一般是3P,即Python、Perl和PHP,PHP就不需要考慮了,除非你要做開發(fā),我個人建議學Python會比較好,難實現(xiàn)自動化運維,Perl是文本處理很強大,反正這兩個學一個就行了。


4.sed和awk工具

這兩個工具必須要掌握,同時還要掌握正則表達式,這個就痛苦了,正則是最難學的表達式,但結合到sed和awk中會很強大,在處理文本內容和過濾Web內容時十分有用,不過在學Shell的同時一般會經常結合用到的,所以學第3點就會順便學第4點。

sed 簡明教程https://coolshell.cn/articles/9104.html
5.文本處理命令

sort 、tr、cut、paste、uniq、tee等必學,也是結合第3點腳本語言時一并學習的。

6.數據庫

首選MySQL,別問我為什么不學SQL Server和Oracle,因為Linux用得最多絕對是MySQL,增刪改查必學,特別要學熟查,其它方面可能不太需要,因為運維人員使用最多還是查,哪些優(yōu)化和開發(fā)語句不會讓你弄的。

MySQL(手動編譯詳細思路,以及增刪改查、授權、備份還原)
7.防火墻

防火墻也算是個難點,說難不難,說易不易,最重要弄懂規(guī)則,如果學過CCNA的朋友可能會比較好學,因為iptables也有NAT表,原理是一樣的,而FILTER表用得最多,反正不學就肯定不合格。


8.監(jiān)控工具

我個人建議,最好學這3個:Cacti,Nagios,Zabbix,企業(yè)用得最多應該是Nagios和 Zabbix,反正都學吧,但Nagios會有點難,因為會涉及到用腳本寫自動監(jiān)控,那個地方很難。

CentOS 6.2+Nginx+Nagios,手機短信和QQ郵箱提醒
服務器集中檢測Cacti
9.集群和熱備

這個很重要,肯定要懂的,但到了公司就不會讓你去弄,因為新手基本不讓你碰,集群工具有很多,最好學是LVS,這是必學,最好也學Nginx集群、反向代理,還有熱備,這個就更多工具能實現(xiàn)了,像我公司是自己開發(fā)熱備工具的。MySQL熱備也要學,就是主從復制,這個要學懂整個流程一點也不容易,只照著做根本沒意思。

MySQL主從同步,雙主同步,如果服務器意外掛機,不同步怎么辦
MySQL高性能壓力測試(總結了好久)
Nginx 緩存配置及報錯解決
10.數據備份

工具有很多,但至少要把RAID的原理弄懂,特別是企業(yè)最常用的1+0或0+1,自己做實驗也要弄出來,備份工具有很多,如tar、dump,最好多了解一下。

學會以上10點,應該可以入門了,有些技術會比較難學,例如Apache和Nginx中還有些很重要的技術,如系統(tǒng)調優(yōu)、服務優(yōu)化、程序優(yōu)化,這些在沒接觸工作前很難學習到的,所以先把這10點學了吧,估計要學熟至少3個月不止,腳本部分會交很吃力了,我建議是先學熟shell,等工作后再學另一門腳本語言,這樣會比較好。

以上就是踏入linux運維工程師需要掌握的工具,還有很多工具要掌握的,但在學習環(huán)境中是很難學到,最后我再提醒一下,這里所指的工具相當于技能,而不是像Windows或Ubuntu的圖形化工具,還有學linux就別裝圖形界面,這樣虛擬機就不用吃太多內存,而且絕對不建議在真機上裝Linux,根本達不到學習效果。

運維思路拓撲圖:

Linux運維基礎知識
有些人認為,其實運維就是部署某個軟件,設置些基礎功能,就算會運維了。

舉個例子:安裝LAMP,LNMP,就感覺部署方法我都掌握了。其實網上大多數都有一鍵安裝腳本啥的根本沒有啥技術含量,在面試官眼里,這些都不是你的亮點。基本到了公司一般環(huán)境架構都是部署好的,很少需要你去變動環(huán)境架構。就算你安裝好 LNMP 架構你熟悉里面的原理嗎?熟悉 Nginx 優(yōu)化嗎?熟悉 MySQL 優(yōu)化嗎?

再舉個例子:我面試遇到的問題,面試官問你既然熟悉 LNMP 架構,那么 Nginx 反向代理的作用。

你應該不是說出懂這個軟件和配置,你盡可能的說怎么優(yōu)化,怎么深入提高網站性能。

使用反向代理可以理解為7層應用層的負載均衡,使用負載均衡之后可以非常便捷的橫向擴展服務器集群,實現(xiàn)集群整體并發(fā)能力、抗壓能力的提高。
通常反向代理服務器會帶有本地 Cache 功能,通過靜態(tài)資源的 Cache,有效的減少后端服務器所承載的壓力,從而提高性能。
下面說說運維在工作中需要掌握的核心技術。注意,這是在工作中掌握的,在學習中很難掌握。

1.第一條最主要的排錯

分析部分程序不能運行或沒有按預想結果運行的原因,對程序運行跟蹤,查看系統(tǒng)調用的過程。
較深入的系統(tǒng)瓶頸點分析。
查看剩余內存:

ree -m

#-/+ buffers/cache: 6458 1649

#6458M為真實使用內存 1649M為真實剩余內存(剩余內存+緩存+緩沖器)

#linux會利用所有的剩余內存作為緩存,所以要保證linux運行速度,就需要保證內存的緩存大小
系統(tǒng)信息:

Linux運維基礎知識
硬件信息:

Linux運維基礎知識
使用分析系統(tǒng)分析web日志(如逆火軟件)
分析系統(tǒng)性能瓶頸點(IO/Memory/CPU,常用工具,top命令中shift組合鍵的特殊用Sar/vmstat/iostat/ipcs)
日志管理常用命令:
Linux運維基礎知識
2.優(yōu)化

優(yōu)化可以說是運維最吃香的技能,基本會優(yōu)化的運維普遍工資很高,而且優(yōu)化是要承擔風險的,并不是網上搜個文章改一下配置文件或者參數就叫優(yōu)化了,這樣很容易造成宕機。

優(yōu)化是根據實際的現(xiàn)場環(huán)境硬件各個參數進行部分優(yōu)化,提高軟件性能和網站性能。這個我只能講半知半解,當時優(yōu)化MySQL和Tomcat參數也是根據網上文章和官網文檔查找參數在虛擬機上測試然后查看性能。

成本優(yōu)化,性能優(yōu)化。這里我給出 Tomcat 優(yōu)化JVM參數(做過相應測試才放到現(xiàn)場環(huán)境的):(記住無監(jiān)控不調優(yōu))

-標準參數,所有jvm都應該支持

-X 非標,每個jvm實現(xiàn)都不同

-XX 不穩(wěn)定參數,下一版本可能會取消

serial collector 單線程 序列化

parallel collector 多線程

啟動 jvisualvm.exe 監(jiān)控 dump 內存溢出

-Xms:初始堆大小

-Xmx:最大堆大小

-Xss:線程棧大小

-XX:NewSize=n:設置年輕代大小

-XX:NewRatio=n:設置年輕代和年老代的比值,如3, 標示年輕代:年老代比值1:3,年輕代占整個年輕代年老代和的1/4

-XX:SurvivorRatio=n:年輕代中的eden區(qū)與2個Survivor區(qū)的比值。

-XX:MaxPermSize=n:設置持久代大小

收集器設置

-XX:+UseSerialGC:設置串行收集器

-XX:+UseParallelGC:設置并行收集器

-XX:+UseConcMarkSweepGC:設置并發(fā)收集器

回收統(tǒng)計信息

-XX:+PrintGC

-XX:+PrintGCDetails

-Xloggc:filename

Tocmat 優(yōu)化,確認有幾個JVM虛擬機

set JAVA_OPTS=

-Xms4g

-Xmx4g

-Xss512k

-XX:+AggressiveOpts 進攻型的優(yōu)化選項,所有優(yōu)化項都加上

-XX:+UseBiasedLocking 優(yōu)化鎖,基本都要選上,偏執(zhí)鎖

-XX:permSize=64m 原始區(qū)大小,最大300m 類多就設置大一點

-XX:MaxPermSize=300m

-XX:+DisableExplicitGC //System.gc() 不顯示調用gc

-XX:+UseConcMarkSweepGC 使用cms縮短相應時間,并發(fā)收集,低停頓

-XX:+UseParNewGC 并行收集新生代的垃圾

-XX:+CMSParallelRemarkEnabled 在使用UseParNewGC的情況下,盡量減少mark的時間

-XX:+UseCMSCompactAtFullCollection 使用并發(fā)收集器時,開啟對年老代的壓縮,使碎片減少

-XX:LargePageSizelnBytes=128m 內存分頁大小對性能的提升

-XX:+UseFastAccessorMethods get/set方法轉成本地代碼

-Djava awt headless=true 修復linux下tomcat處理圖標時可能產生的bug

內存調優(yōu):
Linux運維基礎知識
Linux運維基礎知識
Tomcat 前任何參數沒參加大概每秒605,調優(yōu)后大概每秒435,接近3倍的結果。

Linux運維基礎知識
3.開發(fā)技能

優(yōu)選 Shell 和 Python,現(xiàn)在 Shell 無法滿足你的需求或者效率很低,那么選擇自動化 Python 是最好的選擇?,F(xiàn)在普遍招聘需求要求,會寫 Shell 或者 Python、Perl 腳本,個人選擇還是選 Python。

Python 這門語言上手比較快,容易理解。在服務器管理工具上非常豐富,配置管理(Saltstack) 批量執(zhí)行(Fabric、Saltstack) 監(jiān)控(Zenoss、Nagios 插件) 虛擬化管理( python-libvirt) 進程管理 (Supervisor) 云計算(OpenStack) …… 還有大部分系統(tǒng) C 庫都有 Python 綁定。

對于流程確定的事情,最終一定是納入系統(tǒng)管理的體系,寫成程序,成為系統(tǒng)的一部分。而不是無法復用游離與整體的各種腳本。

隨著云計算時代的來臨,中小型公司不需要運維了,大型公司沒有工程開發(fā)能力的運維,是沒有競爭力的。

最重要的學好 Python 可以漲工資,可以漲工資,可以漲工資。(重要的事情說三遍~)目前本人也是在學 Python,正在把以前 Shell 腳本的實例轉換成 Python 腳本。

意識篇

1.安全意識

運維人員的權限很大,所以一定要保證帳號/私鑰的安全。

最好使用加密工具存儲。比如Truecrypt、lpassword。
基于本地存儲。切勿用網盤,也不建議用lastpass等
SSH私鑰添加密碼
2.磨刀意識

關于任何操作配置,最好先搞明白操作或配置的原理,然后再去操作。應一句話叫做“磨刀不誤砍柴功”,而且對于類似的操作可以舉一反三。

3.計劃意識

復雜的變更操作比如多臺主機以及牽涉到san存儲,最好先作 操作計劃,寫計劃文檔,詳細致每條命令,然后請高手幫忙審核。 這樣能最大程度使整個操作過程安全。如果是重要的客戶業(yè)務系統(tǒng),操作最好有回退方案,而一旦變更失敗,客戶可以在短時間內將業(yè)務回退。

4.記錄分享意識

遇到自己認為較特殊的案例時,記得要寫案例過程及分析的文檔。也方便自己以后翻看,或者和其他兄弟分享,作知識的傳播以便于大家以后都能少走彎路。

5.監(jiān)控意識

運維來說,監(jiān)控是非常重要的,監(jiān)控是發(fā)現(xiàn)系統(tǒng)各種異常的眼睛,所以運維應該和監(jiān)控緊密配合。

6.業(yè)務意識

盡量了解維護的各主機上業(yè)務類型,以及各主機業(yè)務之間的關聯(lián)性。因為任何維護工作都是為主機能提供業(yè)務服務的,當某業(yè)務中斷,能最快的知道與此業(yè)務相關的主機群,從而縮小故障排查范圍,最快定位故障。

看完上述內容,你們對Linux運維有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI