shell基礎知識 與監聽伺服器長連線埠狀態

2022-08-28 22:57:22 字數 3543 閱讀 5274

從未寫過指令碼我的最近接了倆指令碼的需求,就在這分享一下我的我學到基礎知識主要就四部分內容

字串'string="

字串"num=808

string=str

字串可以用單引號和雙引號包裹,也可不包裹。數字話不用引號包裹的話就是乙個數值。

變數也可以用來接受語句給變數賦值

file=`ls -l filepath/txt.txt`
上面的語句是接收filepath 下的txt.txt文件

陣列的定義

程式中常用的還有陣列在 shell 中,用括號( )來表示陣列,陣列元素之間用空格來分隔。由此,定義陣列的一般形式為:

arrayname=(ele1  ele2  ele3 ... elen) 

#定義方法

my_array=(a b "

c" d)

陣列的賦值方法有兩種

一種是,對下標進行賦值、一種是對指定的元素賦值區別如下

#下標賦值

arrayname[0]=value0

arrayname[1]=value1

arrayname[

2]=value2

#特定元素賦值

ages=([3]=24 [5]=19 [10]=12)

注意:變數宣告賦值時=與值之間不允許有空格變數使用使用乙個定義過的變數,只要在變數名前面加美元符號$即可,如:

author="

嚴長生"

echo

$author

echo $

變數名外面的花括號是可選的,加不加都行,加花括號是為了幫助直譯器識別變數的邊界。我個人建議是所有變數的使用是都加的{}

陣列的使用

①陣列的獲取

myarray=(a b "c"

d)echo

"第乙個元素為: $

"echo

"第二個元素為: $

執行結果如上

②獲取陣列中所有元素和長度

myarray=(a b c d)

echo

"陣列元素個數為: $

"echo

"陣列元素個數為: $

"echo "陣列的元素為: $"

echo "陣列的元素為: $"

③ 陣列的遍歷

1、for迴圈

1

for(( i=0;i

2#$獲取陣列長度用於迴圈

3echo$;4

done;

2、for … in

#遍歷(帶陣列下標):

for i in"$

";

doprintf

"%s\t%s\n""

$i""$

"done

#遍歷(不帶陣列下標):

for element in

$#也可以寫成for element

in $

doecho

$element

done

3、while迴圈法

1 i=0

2while [ $i -lt $ ]

3#當變數(下標)小於陣列長度時進入迴圈體4do

5echo

$ 6

#按下標列印陣列元素

7 let i++

8done

到這裡你還記得我們的最初是想幹啥的嗎?監控長連線埠狀態。

檢視埠狀態的命令  【更多解釋檢視菜鳥教程】

1 netstat [-accefghilmnnoprstuvvwx][-a《網路型別》][--ip]

知道如何獲取埠狀態我們就要用shell 來實現了。

命令用 `來包裹就是鍵盤上tab鍵上面那個鍵。我們來試試看

這樣我們就能拿到想要的埠資訊了。

條件測試的表示式:

[ expression ]  括號兩端必須要有空格

[[ expression ]] 括號兩端必須要有空格

組合測試條件:

-a: and

-o: or

判斷比較一般在if中使用,if的使用如下

1

if 判斷條件;then

2#執行內容

3fi

我們可以判斷大約有以下幾幾類

1、整數比較:

-eq 判斷兩個整數是否相等

-ne 判斷兩個整數是否不等

-gt 判斷乙個數是否大於另乙個數

-lt 判斷乙個數是否小於另乙個數

-ge 大於或等於

-le 小於或等於

2、字串比較

== 等於  兩邊要有空格

!= 不等

>  大於

3、檔案判斷

-z      string 判斷指定字元是否為空,空著真,非空為假

-n   string 判斷指定字串是否為不空,空為假 非空為真

-e   file 判斷檔案是否存在

-f       file 判斷檔案是否為普通檔案

-d   file 判斷指定路徑是否為目錄

-r    file 判斷檔案對當前使用者是否可讀

-w   file 判斷檔案對當前使用者是否可寫

-x   file 判斷檔案對當前使用者是都可執行

-z    是否為空  為空則為真

-a    是否不空

我的實現思路如下

1、遍歷獲取所有要查詢的埠號(我們的埠號在配置檔案中)

2、在遍歷中遍歷查詢配置檔案中的埠狀態為eastblishen是否存在

3、如果不存在的就說明這個埠異常,我這樣判斷原因因為可能起這個埠的服務掛了,我們查不到任何狀態更別說判斷了。我們只能取正常的了。

4、判斷異常傳送告警給運維

5、我並沒對把所有的結果彙總到一起進行傳送,因為埠和配置檔案有點多,等結果會很慢而且可能把我自己查死了。所以變異異常直接就發了

參考:參考:

伺服器基礎知識

1.isp internet service provider 網際網路服務提供商,即向廣大使用者綜合提供網際網路接入業務 資訊業務 和增值業務的電信運營商。isp是經國家主管部門批准的正式運營企業,享受國家法律保護。網路內容服務商 英文為 internet content provider 簡寫為...

伺服器基礎知識

一 伺服器端需要搭建web 伺服器 1.web伺服器是乙個軟體 2.做什麼 處理客戶端請求,解析報頭等 3.因為大部分請求都是http 請求,所以 伺服器 web伺服器 4.web伺服器是一種服務,有兩個做得比較好的伺服器 apache 公司的apache 和微軟公司的 iis二 應用伺服器 1.應...

伺服器基礎知識

定義 從廣義上講,伺服器是指網路中能對其它機器提供某些服務的計算機系統 如果乙個pc對外提供ftp服務,也可以叫伺服器 從狹義上講,伺服器是專指某些高效能計算機,能通過網路,對外提供服務。相對於普通pc來說,在穩定性 安全性 效能等方面都要求更高,因此cpu 晶元組 記憶體 磁碟系統 網路等硬體和普...