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