官术网_书友最值得收藏!

2.6 企業生產環境shell腳本案例匯總

通過前面介紹的shell知識,可以輕松地編寫shell腳本了,本節主要介紹一些企業中常用、常見的shell腳本應用案例,讀者可以在自己編寫shell程序的時候,參考這些腳本的編寫邏輯和思路。

因為環境不同,下面所有腳本僅僅是個示例,如果要拿過來使用,需要對腳本中的IP、路徑、用戶等特殊信息進行修改。

2.6.1 統計Linux進程相關數量信息腳本

這個腳本是對系統中運行的進程數和進程狀態進行一個整體統計,內容如下:

這個腳本主要學習的是編寫的邏輯和思路。通過這個思路可以延伸出多個服務器狀態監測腳本。

2.6.2 監控主機的磁盤空間腳本

對磁盤空間的監控,也可以通過腳本完成,下面腳本完成的功能是監控每個磁盤分區,當磁盤分區使用空間超過90%時,就通過sendEmail來發送郵件告警。腳本內容如下:

對磁盤的監控來說,這個腳本非常有用,可以設置告警的閾值,超過閾值,就發送郵件進行告警。sendEmail是個開源工具,可以從http://caspian.dotconf.net/menu/Software/SendEmail/下載最新版本。

2.6.3 批量自動創建用戶腳本

Linux運維中經常需要批量創建用戶。下面這個腳本完成的功能就是批量創建一批用戶,用戶名是有規律指定的,密碼是隨機生成的,腳本執行完畢,用戶名和密碼都保存在文件中。腳本內容如下:

這個腳本中沒有特別需要修改的地方,復制代碼,直接執行即可,默認會創建ixdba1~ixdba10這10個系統用戶,用戶號和密碼保存在list_user文件中。

2.6.4 服務器狀態監控腳本

對服務器的狀態監控有多種方式,非常靈活,下面是日常運維最常用的幾種方式,通過腳本實現了自動監控。

1.根據PID過濾進程所有信息

這個腳本是根據PID過濾進程所有信息,然后給出進程狀態和占用資源信息,代碼如下:

2.根據進程名查看進程狀態

此腳本是根據輸入程序的名字過濾出所對應的PID,并顯示出詳細信息,代碼如下:

3.根據提供的用戶查詢該用戶所有信息

此腳本是根據用戶名查詢該用戶的所有信息,代碼如下:

2.6.5 Linux加固系統的自動化配置腳本

加固系統是Linux基礎運維的必備工作,下面這個腳本完成的功能是對系統用戶和賬號進行安全加固,腳本內容如下:

2.6.6 檢測MySQL服務狀態腳本

1.檢查MySQL服務是否存活

下面是一個最簡單的監控MySQL狀態的腳本,內容如下:

這個腳本其實是借助了mysqladmin命令,這個是需要大家牢記的。

2.檢查MySQL主從同步狀態

MySQL主從復制架構在企業中應用很廣,而對主從復制狀態的監控,也是運維必備的工作。如何監控主從復制狀態呢?看下面腳本的監控邏輯,內容如下:

這個腳本就是通過登錄MySQL,然后查詢主從復制的兩個狀態值Slave_SQL_Running和Slave_IO_Running,如果兩個值都是Yes,那么就認為正常。其中的USER和PASSWD需要更改為自己環境的數據庫用戶名和密碼。

2.6.7 備份MySQL腳本

對MySQL數據庫進行備份是運維必需的工作之一,備份一般是通過寫腳本,然后將腳本放到計劃任務中自動完成的,本節介紹一下常用的自動備份腳本如何編寫。

1.基于mysqldump的備份腳本

下面這個腳本是基于mysqldump的備份,也就是將數據庫備份成SQL文件,內容如下:

對MySQL進行備份,在數據量較少的時候使用mysqldump還是很方便的,而在大量數據需要備份時,這個mysqldump就力不從心了,需要考慮主從或者其他備份方案。

2.通過mysqldump備份并壓縮備份文件的腳本

下面這個腳本是上面腳本的升級版本,內容如下:

這個腳本也是通過mysqldump進行數據庫的備份,不同的是它對備份出來的SQL文件進行了壓縮和校驗,并且刪除一周之前的備份。

2.6.8 一鍵自動化安裝Nginx腳本

一鍵自動化安裝腳本,對于自動化運維來說,非常有用,下面就是一個簡單的一鍵自動化安裝腳本,內容如下:

這個腳本僅僅編寫了一鍵安裝Nginx的功能,還有更多的,例如,一鍵安裝MySQL、PHP、Zabbix等,大家可以仿照Nginx的例子自行編寫。

2.6.9 查找指定網段活躍IP腳本

下面腳本用來查找指定網段內活躍的IP地址,查找結果自動重定向到ip.txt文件中,以備查驗,腳本內容如下:

2.6.10 監控網站頁面是否正常訪問腳本

監控網頁狀態是Web運維的必備工作。如何監控網頁狀態呢?下面給出一個思路,代碼如下:

這段代碼是通過curl獲取網頁的狀態碼。如果狀態碼返回200,那么認為正常,否則認為異常,并將監控狀態寫到日志文件中。其實對網頁的監控,大部分都是通過頁面返回的狀態碼來判斷的。

shell的熟練編寫,語法是基礎,更多的是多實踐、多練習,從別人給出的案例中找到編寫的思路和邏輯。另外,編寫shell腳本,一定要加上注釋。

主站蜘蛛池模板: 陈巴尔虎旗| 长垣县| 榆社县| 天全县| 共和县| 皮山县| 同心县| 桃园县| 丹巴县| 辽阳县| 靖州| 蓝田县| 崇州市| 土默特左旗| 英超| 福建省| 普兰店市| 张家港市| 凤庆县| 白水县| 东丰县| 乃东县| 石城县| 拉萨市| 新干县| 固原市| 湘西| 漠河县| 龙州县| 河津市| 拜泉县| 阿勒泰市| 年辖:市辖区| 吉水县| 汝南县| 伊宁市| 息烽县| 噶尔县| 恩平市| 六枝特区| 吴堡县|