日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本应用(二)

發布時間:2025/3/18 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本应用(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

防偽碼:會當凌絕頂,一覽眾山小!? ??

??????????????第六章 shell腳本應用(二)

前言:為了使shell腳本具有一定的“判斷”能力,根據不同的條件來完成不同的管理任務。使腳本具有一定的“智能”。

目標:學會使用條件測試操作+if條件語句+實驗(構建postfix郵件系統并測試系統管理和維護)

一、 條件測試操作

1、 文件測試(根據給定的路徑名稱,判斷對應的是文件還是目錄,或者判斷文件是否可讀、可寫、可執行)

-d(是否為目錄

-e(目錄或文件是否存在

-f(是否為文件)

-r(讀取)-w(寫入)?-x(執行)

測試/media/cdrom是否存在,為0表示存在此目錄,返回1不存在。

為了顯示更直觀,可改為以下方式

2、 整數值比較(用來判斷已登錄用戶數量,開啟進程數,磁盤使用率是否超標,以及軟件版本號是否符合要求等

設第一個數為x,第二個數為y

-eq: ?x = y

-ne: ?x?≠ y

-gt: ?x > y

-lt: ?x < y

-le: ?x?≤ y

-ge:x?≥ y

1)例如:判斷當前已登錄的用戶數,當超過5個時輸出“too many”

2) 判斷當前可用的空閑內存大小,當低于1024m時輸出具體數值。

?3、 字符串比較(常用來檢查用戶輸入,系統環境是否滿足條件,以及判斷用戶輸入的位置參數是否符合要求

=:第一個字符串與第二個字符串相同

!=:第一個字符串與第二個字符創不相同

-z:檢查字符串是否為空

1)例如:判斷當前的語言環境,當發現不是en.us時輸出提示信息“not ?en.us”

2) 交互式的簡單案例

4、 邏輯測試(判斷兩個或者多個條件之間的依賴關系

&&:前后兩個條件都成立,測試命令返回值為0(結果成立)

||:前后兩個條件之一成立,測試命令返回值為0(結果成立)

!:指定條件不成立,測試命令返回值為0(結果成立)

1) 例如:判斷當前linux內核版本是否大于2.4,可以執行以下操作:

二、 使用if條件語句(更好的整理腳本結構,使得層次分明,清晰易懂

1、 單分支的if語句(條件成立,執行相應的代碼)

1) 例如:掛載光盤的操作,先判斷掛載點目錄是否存在,若不存在則新建此目錄

Vi ?chkmountdir.sh,內容如下:

?2) 判斷當前用戶是不是root,如果不是則報錯并執行exit 1退出腳本(1表示退出后的返回狀態值),而不再執行其他代碼

Vim ?chkifroot.sh

執行腳本:./chkifroot.sh,因為當前登錄的用戶是root,所以執行fi之后的代碼

?2、?雙分支if語句應用(嵌套使用,多次判斷)

1)例如:編寫一個連通性測試腳本pinghost.sh,

設置執行權限之后測試

?2) 再例如:通過shell腳本檢查vsftpd服務是否運行,如果已運行則列出其監聽地址、pid號,否則輸出提示“vsftpd服務不可用!”

首先安裝vsftpd軟件

然后編寫腳本vim ?chkftpd.sh

接下來設置權限并執行,提示vsftpd服務不可用

開啟vsftpd服務器之后再次執行腳本

3、 多分支if語句應用(能夠根據多個互斥條件分別執行不同操作,實際上等同于嵌套使用的if語句

例如:根據輸入的考試分數的不同來區分優秀,合格,不合格三檔

Vi ?gradediv.sh

設置權限之后執行腳本:

上機實驗部分:

完成此實驗必須安裝postfix郵件服務器,我的服務器已經安裝好,只需要配置即可。

1、使用postfix ? check命令檢查服務器的配置,如果沒有提示說明沒問題。

2、 開啟postfix服務

3、 修改配置文件,(/etc/postfix/main.cf)改為以下的效果。(下面的代碼都有,去掉前面的#號,修改后面的值即可,

改完之后重啟postfix服務,使用postfix reload重新加載。

重啟、重載

4、 安裝telnet服務器和客戶端(若telnet-server包裝不了,先裝xinetd包)

5、 配置dns服務器,在原來的基礎之上修改數據文件google.com.zone即可

6、 修改vim ?/etc/resolv.conf

7、 使用telnet測試郵件服務器,看到下面的220說明postfix服務器沒問題,可以發送郵件了。

8、 編寫sysmon.sh腳本

(1)使用df命令提取出根分區的磁盤占用率,賦值給變量DUG。

(2)使用mpstat命令提取CPU使用率(需安裝sysstat軟件包),賦值給變量CUG。

(3)使用free命令提取出內存使用率,賦值給變量MUG。

(4)判斷上述監控項目是否超標,將需要告警的信息保存到/tmp/alert.txt文件。

(5)判斷/tmp/alert.txt文件是否存在,若存在則作為告警郵件發送。


9、測試sysmon.sh腳本的執行情況

(1)確認有可用的郵件服務器(如Postfix、Sendmail等),然后調低監控閾值,執行sysmon.sh腳本進行測試。

(2) 查收yangwen@google.com的郵箱,確認告警郵件內容。

10、設置crontab計劃任務

確認系統服務crond已經運行。添加crontab計劃任務配置,每半小時調用一次sysmon.sh腳本程序。

謝謝大家的觀看!

轉載于:https://blog.51cto.com/yw666/1853991

總結

以上是生活随笔為你收集整理的shell脚本应用(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。