Shell腳本能幫助我們很方便的去管理服務(wù)器,因為我們可以指定一個任務(wù)計劃定時去執(zhí)行某一個shell腳本實現(xiàn)我們想要需求。這對于linux系統(tǒng)管理員來說是一件非常值得自豪的事情。現(xiàn)在的139郵箱很好用,發(fā)郵件的同時還可以發(fā)一條郵件通知的短信給用戶,利用這點,我們就可以在我們的linux服務(wù)器上部署監(jiān)控的shell腳本,比如網(wǎng)卡流量有異常了或者服務(wù)器web服務(wù)器停止了就可以發(fā)一封郵件給管理員,同時發(fā)送給管理員一個報警短信這樣可以讓我們及時的知道服務(wù)器出問題了。
第一階段:Linux命令行和shell腳本的基本知識
第一節(jié):linux組成、深入研究Linux內(nèi)核的功能、bash提示符、man幫助手冊、Linux目錄結(jié)構(gòu)、文件管理
第二節(jié):進程管理、磁盤管理、文件的歸檔和壓縮、Linux環(huán)境變量、命令別名
第三節(jié):Linux輸入輸出重定向、管道、變量、腳本提示信息
第四節(jié):Linux用戶管理、Linux文件權(quán)限管理、文本編輯器vim的使用 (實例:監(jiān)控系統(tǒng)中的所有用戶的操作記錄,并實時監(jiān)測系統(tǒng)中具有安全問題的文件)
第五節(jié):文本過濾器grep、文本流式編輯器sed、報表生成器awk (實例:對大型站點的訪問日志進行處理,提取用戶行為)
第六節(jié):if-then語句、if-then-else語句、if嵌套語句、符合條件檢查、case結(jié)構(gòu)的使用(實例:編寫一個nginx的服務(wù)腳本)
第七節(jié):for循環(huán)、while循環(huán)、until循環(huán)、嵌套循環(huán)、文件數(shù)據(jù)的循環(huán) (實例:編寫腳本實時監(jiān)控公司內(nèi)的所有主機的在線情況、并實時監(jiān)控服務(wù)器提供的服務(wù)是否正常)
第八節(jié):常用的Linux系統(tǒng)信號、捕獲Linux系統(tǒng)信號、怎么以后臺模式運行腳本、制定Linux的任務(wù)計劃、Linux腳本編程的函數(shù)使用(實例:每天的00:00對mySQL數(shù)據(jù)庫進行備份)
節(jié)程第二階段:高級shell腳本編程(案例實戰(zhàn))
第九節(jié):編寫shell腳本實現(xiàn)Hadoop集群的搭建
第十節(jié):編寫shell腳本實現(xiàn)mysql高可用集群的安裝(corosync+pacemaker+mysql+nfs)
第十一節(jié):編寫shell腳本實現(xiàn)lamp架構(gòu)的lvs net模型負載均衡集群的安裝(lvs+apache+mysql+php+nfs)
第十二節(jié):編寫bash腳本 實現(xiàn)跳板機,只允許用戶執(zhí)行少量允許的命令
案例需求:
1、很多大公司的服務(wù)器都不允許直接登錄,而是通過一個跳板機才能登錄過去。在跳板機中,通常只能執(zhí)行幾個少數(shù)命令(如SSH),而其他命令是不允許執(zhí)行的,那么怎樣才能實現(xiàn)這個功能呢?
2、一些小公司,由于服務(wù)器比較少,不需要什么跳板機之類的說法,公司的開發(fā)運維人員加起來也就那么十幾二十人,通常大家都知道root密碼,所有人都是直接root登錄上去,但是有時有人由于失誤,把什么服務(wù)弄掛了,這時是肯定抓不到人的,因為所有人都知道密碼,那么怎樣才能知道誰都執(zhí)行過什么命令呢?或者干脆只讓他們執(zhí)行少數(shù)允許的命令呢?
第十三節(jié):編寫shell腳本監(jiān)控服務(wù)器狀態(tài)案例
案例需求:為了持續(xù)觀察服務(wù)器每天的基本運行狀態(tài),提供方便方便易讀的集中的日志記錄數(shù)據(jù),需要結(jié)合shell腳本的任務(wù)計劃設(shè)置,定期記錄不同時間段服務(wù)器的CPU負載、內(nèi)存和交換空間、磁盤使用率等各種信息。
1、每隔15分鐘記錄一次服務(wù)器的基本運行狀況,包括:CPU負載、內(nèi)存和交換空間、磁盤空間信息
2、最近用戶等情況
3、記錄當時的時間信息(以YYYY-mm-dd HH:MM的格式輸出所有信息追加到文件/var/log/runrec/running.log中)
4、每天晚上00:00分時備份running.log文件;進行壓縮備份,保存到/var/log/tuntec目錄中;備份的文件名參考:runing.log-YYYYmmdd.tar.bz2;備份完成刪除當天的記錄文件(running.log)