最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

監(jiān)控運維命令詳解

2023-06-07 16:05 作者:chaojilaji123  | 我要投稿

需要關注持續(xù)更新的朋友可以關注下面的鏈接:

[運維相關合集地址](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI5MjY4OTQ2Nw==&action=getalbum&album_id=2961710361051660289&scene=173&from_msgid=2247484158&from_itemidx=1&count=3&nolastread=1#wechat_redirect)

# 監(jiān)控類命令

## watch命令


`watch`命令是一個用于在命令行界面下執(zhí)行指定命令或腳本,并周期性地顯示其輸出結(jié)果的實用程序。它可以幫助你監(jiān)視命令的實時輸出,以便持續(xù)跟蹤命令的執(zhí)行情況。


`watch`命令的常見語法如下:


```shell

watch [選項] 命令

```

其支持的選項如下:


+ `-n`:指定刷新間隔,即執(zhí)行命令的時間間隔。例如,`watch -n 5`表示每隔5秒執(zhí)行一次命令,默認值為2秒。


+ `-d`:高亮顯示輸出結(jié)果中發(fā)生變化的部分。這可以幫助你快速注意到輸出結(jié)果的變化。


+ `-t`:在輸出結(jié)果的頂部顯示當前時間。


+ `-c`:清除屏幕上的輸出結(jié)果,每次刷新時都會清除屏幕并顯示最新的輸出。


+ `-b`:以批處理模式運行`watch`命令,即不接受輸入并將其輸出寫入文件。這在將`watch`命令與其他命令或腳本結(jié)合使用時很有用。


+ `--color`:強制顯示輸出結(jié)果的顏色。這對于支持顏色的命令或腳本很有用。


通過使用`watch`命令,你可以方便地監(jiān)視系統(tǒng)狀態(tài)、實時查看日志文件的變化、觀察進程的運行情況等。它在調(diào)試和監(jiān)控系統(tǒng)時非常有用,以及在需要持續(xù)追蹤某些命令輸出的情況下使用。



### 后面跟雙引號

如果連接的命令比較長,可以使用雙引號括起來的方式

例如:

```shell

watch -n 5 -d "ps -aux | grep java"

```

## ps命令

`ps`命令是一個用于查看當前正在運行的進程信息的實用程序。它提供了多種用法和選項,以下是一些常見的用法:


1. 顯示當前用戶的所有進程:

? ?```

? ?ps

? ?```


2. 顯示所有進程的詳細信息:

? ?```

? ?ps -ef

? ?```


3. 顯示當前用戶的所有進程及其層次結(jié)構(gòu)(樹狀顯示):

? ?```

? ?ps -ef --forest

? ?```


4. 以樹狀結(jié)構(gòu)顯示指定進程及其子進程:

? ?```

? ?ps -f --forest -p <PID>

? ?```


5. 顯示所有進程的信息,包括進程的狀態(tài)、占用的CPU和內(nèi)存等:

? ?```

? ?ps aux

? ?```


6. 僅顯示當前用戶的進程,并以用戶為單位進行分組:

? ?```

? ?ps ux

? ?```


7. 以持續(xù)更新的方式顯示進程信息:

? ?```

? ?ps -ef --forest --forest

? ?```


8. 查找指定進程名的進程:

? ?```

? ?ps -ef | grep <進程名>

? ?```


9. 查看指定用戶的進程:

? ?```

? ?ps -u <用戶名>

? ?```


## pstree命令

`pstree`命令是一個用于以樹狀結(jié)構(gòu)顯示進程層次關系的實用程序。它以可讀性較好的方式顯示進程之間的父子關系,幫助用戶更好地理解和分析系統(tǒng)中的進程結(jié)構(gòu)。


`pstree`命令通常在Linux和Unix系統(tǒng)中預裝,無需額外安裝。你可以直接在終端中使用該命令。下面是使用`pstree`命令的基本語法:


```shell

pstree [選項]

```


一般情況下,你可以直接運行`pstree`命令來顯示當前用戶的所有進程及其層次關系。它會以樹狀結(jié)構(gòu)的形式輸出進程層次,并標示進程之間的父子關系。


`pstree`命令還提供一些選項來定制其行為,例如:


- `-p`:顯示進程的PID(進程ID)。

- `-u`:顯示進程的所有者。

- `-h`:高亮顯示當前進程及其祖先進程。

- `-a`:顯示進程的命令行參數(shù)。


你可以組合使用這些選項來滿足你的需求,例如:`pstree -p -h`會顯示進程的PID,并以高亮方式突出顯示當前進程及其祖先進程。


需要注意的是,`pstree`命令可能需要以超級用戶(root)權(quán)限運行,以顯示所有進程的完整層次結(jié)構(gòu)。你可以使用`sudo pstree`命令來獲取完整的進程層次信息。



## free 命令

`free`命令用于顯示系統(tǒng)的內(nèi)存使用情況和交換空間(swap)情況。下面是`free`命令的詳細用法:


```

free [選項]

```


常用的選項包括:


- `-h`:以人類可讀的方式顯示內(nèi)存大小,使用K、M、G等單位。

- `-b`:以字節(jié)(Bytes)為單位顯示內(nèi)存大小。

- `-k`:以千字節(jié)(Kilobytes)為單位顯示內(nèi)存大?。J選項)。

- `-m`:以兆字節(jié)(Megabytes)為單位顯示內(nèi)存大小。

- `-g`:以吉字節(jié)(Gigabytes)為單位顯示內(nèi)存大小。

- `-s <間隔秒數(shù)>`:連續(xù)顯示內(nèi)存使用情況,并指定刷新間隔。

- `-c <次數(shù)>`:指定連續(xù)顯示內(nèi)存使用情況的次數(shù)。


以下是一些常用的示例:


1. 顯示內(nèi)存和交換空間的使用情況:

? ?```

? ?free

? ?```


2. 以人類可讀的方式顯示內(nèi)存和交換空間的使用情況:

? ?```

? ?free -h

? ?```


3. 每隔5秒連續(xù)顯示內(nèi)存和交換空間的使用情況:

? ?```

? ?free -s 5

? ?```


4. 顯示內(nèi)存和交換空間的詳細信息,包括內(nèi)存總量、已用內(nèi)存、空閑內(nèi)存等:

? ?```

? ?free -b

? ?```


`free`命令的輸出結(jié)果包括以下字段:


- `total`:總內(nèi)存量。

- `used`:已使用的內(nèi)存量。

- `free`:可用的內(nèi)存量。

- `shared`:被共享的內(nèi)存量。

- `buffers`:被緩沖的內(nèi)存量。

- `cached`:被緩存的內(nèi)存量。

- `Swap`:交換空間的總量、已使用量和空閑量。


這些字段描述了系統(tǒng)內(nèi)存的不同方面和用途。以下是這些字段之間的關系:


- `total`:表示系統(tǒng)中的總內(nèi)存量,包括物理內(nèi)存和交換空間。


- `used`:表示已被系統(tǒng)和進程使用的內(nèi)存量,包括正在使用的物理內(nèi)存和交換空間。


- `free`:表示當前未被使用的內(nèi)存量,包括未被系統(tǒng)和進程使用的物理內(nèi)存和交換空間。


- `shared`:表示被多個進程共享的內(nèi)存量。這包括通過共享內(nèi)存機制分配的內(nèi)存,例如共享庫、共享內(nèi)存段等。


- `buffers`:表示被內(nèi)核用于緩沖數(shù)據(jù)的內(nèi)存量。這些緩沖區(qū)用于加速磁盤讀寫操作,以提高系統(tǒng)性能。


- `cached`:表示被內(nèi)核緩存的文件數(shù)據(jù)的內(nèi)存量。當文件被讀取時,內(nèi)核會將數(shù)據(jù)緩存到內(nèi)存中,以便更快地響應后續(xù)讀取請求。


- `Swap`:表示交換空間的相關信息,包括總交換空間量、已使用的交換空間量和可用的交換空間量。交換空間用于在物理內(nèi)存不足時暫時存儲和交換出不常用的內(nèi)存頁。


總體上,`used` 包括了 `shared`、`buffers`、`cached` 和實際被進程使用的內(nèi)存。而 `free` 則表示未被系統(tǒng)和進程使用的內(nèi)存,包括未被緩沖和緩存的空閑內(nèi)存。


需要注意的是,這些值是基于當前時刻的快照,內(nèi)存使用情況是動態(tài)變化的,因此在不同時間查詢時,這些值可能會有所不同。


## df命令、du命令和fdisk命令

這三個命令都是查看硬盤使用情況的命令

### df命令

`df`命令用于顯示文件系統(tǒng)的磁盤空間使用情況。它提供了多種選項,用于定制輸出的格式和內(nèi)容。以下是一些常用的選項:


- `-h`:以人類可讀的方式顯示磁盤空間大小,使用K、M、G等單位。

- `-k`:以千字節(jié)(Kilobytes)為單位顯示磁盤空間大小。

- `-m`:以兆字節(jié)(Megabytes)為單位顯示磁盤空間大小。

- `-g`:以吉字節(jié)(Gigabytes)為單位顯示磁盤空間大小。

- `-i`:顯示inode的使用情況(文件系統(tǒng)索引節(jié)點)。

- `-T`:顯示文件系統(tǒng)的類型。

- `-t <文件系統(tǒng)類型>`:只顯示指定類型的文件系統(tǒng)。

- `-x <文件系統(tǒng)類型>`:排除指定類型的文件系統(tǒng)。

- `--total`:在最后一行顯示總計的磁盤使用情況。

- `--exclude-type <文件系統(tǒng)類型>`:排除指定類型的文件系統(tǒng)。

- `--help`:顯示`df`命令的幫助信息。


可以使用這些選項的組合來滿足特定的需求。例如:


- 顯示人類可讀的磁盤空間使用情況,并排除特定類型的文件系統(tǒng):

? ```

? df -h -x <文件系統(tǒng)類型>

? ```


- 顯示inode的使用情況,并在最后一行顯示總計的磁盤使用情況:

? ```

? df -i --total

? ```


請注意,`<文件系統(tǒng)類型>`是指文件系統(tǒng)的標識,如ext4、ntfs、vfat等。你可以通過`df --help`命令獲取完整的選項列表和用法說明。


### du命令

`du`命令用于顯示目錄或文件的磁盤空間使用情況。它可以幫助你確定文件和目錄所占用的磁盤空間大小。以下是一些常用的`du`命令選項:


- `-h`:以人類可讀的方式顯示磁盤空間大小,使用K、M、G等單位。

- `-k`:以千字節(jié)(Kilobytes)為單位顯示磁盤空間大?。J選項)。

- `-m`:以兆字節(jié)(Megabytes)為單位顯示磁盤空間大小。

- `-g`:以吉字節(jié)(Gigabytes)為單位顯示磁盤空間大小。

- `-s`:只顯示總計的磁盤空間使用情況,而不顯示每個文件和目錄的詳細信息。

- `-c`:在最后一行顯示總計的磁盤空間使用情況。

- `-a`:顯示所有文件和目錄的磁盤空間使用情況,而不僅限于目錄的總計。

- `--exclude=<模式>`:排除符合指定模式的文件或目錄。

- `--max-depth=<層級>`:限制顯示的層級深度。


你可以使用這些選項的組合來滿足不同的需求。以下是一些示例:


- 顯示目錄或文件的磁盤空間使用情況,并以人類可讀的方式顯示大小:

? ```

? du -h <目錄或文件>

? ```


- 只顯示目錄的總計磁盤空間使用情況:

? ```

? du -sh <目錄>

? ```


- 顯示所有文件和目錄的磁盤空間使用情況,包括子目錄的詳細信息:

? ```

? du -a <目錄>

? ```


- 顯示指定層級深度的磁盤空間使用情況:

? ```

? du --max-depth=2 <目錄>

? ```


請注意,`<目錄或文件>`是指要查看磁盤空間使用情況的目錄路徑或文件路徑。你可以通過`du --help`命令獲取完整的選項列表和用法說明。


### fdisk命令

`fdisk`命令是一個用于查看和管理磁盤分區(qū)的命令行工具。它可以幫助你查看磁盤的分區(qū)信息、創(chuàng)建新的分區(qū)、刪除分區(qū)等。以下是一些常用的 `fdisk` 命令選項:


- `-l`:列出系統(tǒng)中的所有磁盤和分區(qū)的信息。

? ```

? fdisk -l

? ```


- `/dev/<磁盤設備名>`:指定要操作的磁盤設備,例如 `/dev/sda`。

? ```

? fdisk /dev/sda

? ```


- `n`:創(chuàng)建一個新的分區(qū)。

- `d`:刪除一個分區(qū)。

- `p`:顯示分區(qū)表的信息。

- `w`:將所做的更改寫入磁盤并退出 `fdisk`。

- `q`:不保存更改并退出 `fdisk`。


請注意,使用 `fdisk` 命令進行分區(qū)操作需要以超級用戶(root)權(quán)限運行。此外,對磁盤進行分區(qū)操作是一個潛在的危險操作,請確保在進行分區(qū)操作之前備份重要的數(shù)據(jù)。


以下是一個簡單的分區(qū)操作示例:


1. 列出系統(tǒng)中的所有磁盤和分區(qū)信息:

? ?```

? ?fdisk -l

? ?```


2. 選擇要操作的磁盤設備,例如 `/dev/sda`:

? ?```

? ?fdisk /dev/sda

? ?```


3. 在 `fdisk` 的交互式界面中,使用命令 `n` 創(chuàng)建一個新的分區(qū),然后按照提示進行分區(qū)類型、起始位置和大小的設置。


4. 使用命令 `p` 顯示分區(qū)表信息,確認分區(qū)已創(chuàng)建。


5. 使用命令 `w` 將更改寫入磁盤并退出 `fdisk`。


## 查看cpu情況

### top命令

>Tasks: 292 total,? ?1 running, 291 sleeping,? ?0 stopped,? ?0 zombie

%Cpu(s):? 0.7 us,? 0.8 sy,? 0.0 ni, 98.5 id,? 0.0 wa,? 0.0 hi,? 0.0 si,? 0.0 st

MiB Mem :? 31662.0 total,? ?4555.1 free,? 26599.6 used,? ? 507.3 buff/cache

MiB Swap:? ? 975.0 total,? ? 113.4 free,? ? 861.6 used.? ?4554.9 avail Mem?


? ? PID USER? ? ? PR? NI? ? VIRT? ? RES? ? SHR S? %CPU? %MEM? ? ?TIME+ COMMAND? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1692815 root? ? ? 20? ?0? ?17.7g? ?1.5g? 20264 S? ?6.3? ?4.7? ?5:53.00 java


以上是top命令的一個結(jié)果,我們來簡單解讀一下:



1. 第一行:顯示了任務(進程)的總數(shù)和狀態(tài)信息。

? ?- `Tasks: 292 total`:系統(tǒng)中的任務總數(shù)。

? ?- `1 running`:正在運行的任務數(shù)。

? ?- `291 sleeping`:睡眠(等待)的任務數(shù)。

? ?- `0 stopped`:停止的任務數(shù)。

? ?- `0 zombie`:僵尸(已結(jié)束但未被父進程回收)任務數(shù)。


2. 第二行:顯示了 CPU 的使用情況。

? ?- `%Cpu(s)`:CPU 使用率的統(tǒng)計信息。

? ?- `0.7 us`:用戶空間占用 CPU 的百分比。

? ?- `0.8 sy`:系統(tǒng)內(nèi)核占用 CPU 的百分比。

? ?- `0.0 ni`:用戶進程以調(diào)整優(yōu)先級方式占用 CPU 的百分比。

? ?- `98.5 id`:CPU 空閑的百分比。

? ?- `0.0 wa`:等待磁盤 I/O 的百分比。

? ?- `0.0 hi`:硬件中斷(高優(yōu)先級)占用 CPU 的百分比。

? ?- `0.0 si`:軟件中斷(低優(yōu)先級)占用 CPU 的百分比。

? ?- `0.0 st`:被虛擬化偷取的 CPU 時間的百分比。


3. 第三行:顯示了內(nèi)存的使用情況。

? ?- `MiB Mem`:物理內(nèi)存的統(tǒng)計信息。

? ?- `31662.0 total`:總的物理內(nèi)存大小。

? ?- `4555.1 free`:可用的物理內(nèi)存大小。

? ?- `26599.6 used`:已使用的物理內(nèi)存大小。

? ?- `507.3 buff/cache`:用于緩存的物理內(nèi)存大小。


4. 第四行:顯示了交換空間(Swap)的使用情況。

? ?- `MiB Swap`:交換空間的統(tǒng)計信息。

? ?- `975.0 total`:總的交換空間大小。

? ?- `113.4 free`:可用的交換空間大小。

? ?- `861.6 used`:已使用的交換空間大小。

? ?- `4554.9 avail Mem`:可用于新進程的內(nèi)存大小。


5. 接下來的行:顯示了每個任務(進程)的詳細信息。

? ?- `PID`:任務的進程ID。

? ?- `USER`:任務的所有者。

? ?- `PR`:任務的優(yōu)先級。

? ?- `NI`:任務的優(yōu)先級調(diào)整值。

? ?- `VIRT`:任務占用的虛擬內(nèi)存大小。

? ?- `RES`:任務占用的物理內(nèi)存大小。

? ?- `SHR`:任務共享的內(nèi)存大小。

? ?- `S`:任務的狀態(tài)(R:運行,S:睡眠,Z:僵尸等)。

? ?- `%CPU`:任務占用的CPU使用率。

? ?- `%MEM


`:任務占用的內(nèi)存百分比。

? ?- `TIME+`:任務已運行的總時間。

? ?- `COMMAND`:任務的命令名稱。


以上是對top命令結(jié)果的詳細解釋,它提供了關于系統(tǒng)任務、CPU、內(nèi)存和進程的重要信息。

`top`命令有許多選項可以用于定制輸出和控制顯示的內(nèi)容。以下是一些常用的`top`命令選項:


- `-d <秒數(shù)>`:指定更新顯示的時間間隔。

- `-n <次數(shù)>`:指定顯示信息的刷新次數(shù)后退出`top`。

- `-b`:以批處理模式運行`top`,將結(jié)果輸出到標準輸出而不是交互式界面。

- `-c`:顯示命令的完整路徑而不僅僅是命令名稱。

- `-i`:忽略或顯示空閑的進程。

- `-s <字段>`:以指定的字段進行排序,例如`-s %CPU`按照CPU使用率排序。

- `-u <用戶名>`:僅顯示屬于指定用戶的進程。

- `-p <進程ID>`:僅顯示指定進程ID的信息。

- `-H`:以線程的方式顯示進程的信息。

- `1`:切換到顯示每個CPU核心的詳細信息。

- `t`:切換到顯示進程和CPU的信息。


### mpstat命令

下面是該命令的一次結(jié)果

>Linux 5.10.0-15-amd64 (debian-2) 06/07/2023 _x86_64_ (16 CPU)

03:01:22 PM? CPU? ? %usr? ?%nice? ? %sys %iowait? ? %irq? ?%soft? %steal? %guest? %gnice? ?%idle

03:01:22 PM? all? ? 0.22? ? 0.00? ? 0.19? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ? 0.00? ?99.59


簡單解讀一下

- `03:01:22 PM`:報告生成的時間。


下面是每一列的含義:


- `CPU`:顯示 CPU 的標識。

- `%usr`:用戶空間程序使用 CPU 的百分比。

- `%nice`:以調(diào)整優(yōu)先級方式運行的用戶進程使用 CPU 的百分比。

- `%sys`:內(nèi)核空間程序使用 CPU 的百分比。

- `%iowait`:等待 I/O 完成而處于空閑狀態(tài)的 CPU 百分比。

- `%irq`:服務硬件中斷請求的 CPU 百分比。

- `%soft`:服務軟件中斷請求的 CPU 百分比。

- `%steal`:被其他虛擬化實例“偷取”的 CPU 百分比。

- `%guest`:運行虛擬化客戶機的 CPU 百分比。

- `%gnice`:以調(diào)整優(yōu)先級方式運行的虛擬化客戶機的 CPU 百分比。

- `%idle`:處于空閑狀態(tài)的 CPU 百分比。


對于示例中的數(shù)據(jù)行:


- `all`:表示所有 CPU 的統(tǒng)計數(shù)據(jù),表示所有 CPU 的平均值。

- `%usr`:用戶空間程序使用 CPU 的百分比為 0.22%。

- `%nice`:以調(diào)整優(yōu)先級方式運行的用戶進程使用 CPU 的百分比為 0%。

- `%sys`:內(nèi)核空間程序使用 CPU 的百分比為 0.19%。

- `%iowait`:等待 I/O 完成而處于空閑狀態(tài)的 CPU 百分比為 0%。

- `%irq`、`%soft`、`%steal`、`%guest`、`%gnice`:都是 0%,表示沒有相關的活動。

- `%idle`:處于空閑狀態(tài)的 CPU 百分比為 99.59%。


這些統(tǒng)計信息顯示了在報告生成的時間點上,系統(tǒng)中的 CPU 使用情況。


下面是一些常用的`mpstat`命令選項:


- `-P <CPU列表>`:指定要顯示統(tǒng)計信息的特定 CPU 列表。例如,`mpstat -P 0,2`將僅顯示CPU 0和CPU 2的統(tǒng)計信息。

- `-u`:顯示 CPU 使用率的統(tǒng)計信息。

- `-I <中斷類型>`:顯示指定類型的中斷信息。可用的中斷類型包括 `CPU`、`IRQ`、`NMI` 和 `SERR`。

- `-V`:顯示 `mpstat` 命令的版本信息。

- `-P ALL`:顯示每個 CPU 的統(tǒng)計信息。

- `-I ALL`:顯示所有中斷類型的統(tǒng)計信息。

- `-A`:顯示所有可用的統(tǒng)計信息。

- `-I SUM`:顯示中斷摘要的統(tǒng)計信息。

- `-I SUM -p ALL`:顯示中斷匯總信息,包括每個 CPU 的統(tǒng)計信息。



## 查看網(wǎng)絡情況

### netstat命令

`netstat`命令有多個選項,可以根據(jù)需要來顯示網(wǎng)絡連接、路由表和網(wǎng)絡統(tǒng)計信息。以下是一些常用的`netstat`命令選項:


- `-a`:顯示所有的網(wǎng)絡連接和監(jiān)聽端口。

- `-t`:僅顯示 TCP 協(xié)議相關的網(wǎng)絡連接。

- `-u`:僅顯示 UDP 協(xié)議相關的網(wǎng)絡連接。

- `-n`:以數(shù)字形式顯示 IP 地址和端口號,而不進行主機和服務名稱解析。

- `-p`:顯示與每個網(wǎng)絡連接關聯(lián)的進程/程序的PID和名稱。

- `-r`:顯示系統(tǒng)的路由表信息。

- `-s`:顯示網(wǎng)絡統(tǒng)計信息,如傳輸層統(tǒng)計和協(xié)議統(tǒng)計。

- `-l`:僅顯示監(jiān)聽狀態(tài)的網(wǎng)絡連接。

- `-e`:顯示擴展信息,如用戶、inode、計時器信息等。

- `-c`:連續(xù)顯示網(wǎng)絡連接信息,不斷刷新顯示。

- `-i`:顯示網(wǎng)絡接口的信息和統(tǒng)計。


下面是一個結(jié)果

>Proto RefCnt Flags? ? ? ?Type? ? ? ?State? ? ? ? ?I-Node? ?PID/Program name? ? ?Path

unix? 2? ? ? [ ]? ? ? ? ?DGRAM? ? ? ? ? ? ? ? ? ? 579005? ?26313/systemd? ? ? ? /run/user/0/systemd/notify

unix? 2? ? ? [ ACC ]? ? ?STREAM? ? ?LISTENING? ? ?13693? ? 1228/zabbix_server? ?/run/zabbix/zabbix_server_rtc.sock


逐行進行分析:


1. `unix? 2? ? ? [ ]? ? ? ? ?DGRAM? ? ? ? ? ? ? ? ? ? 579005? ?26313/systemd? ? ? ? /run/user/0/systemd/notify`

? ?- `Proto`:協(xié)議類型,這里是UNIX。

? ?- `RefCnt`:引用計數(shù),表示當前連接的引用數(shù)量。

? ?- `Flags`:標志位,這里為空。

? ?- `Type`:連接的類型,這里是DGRAM(數(shù)據(jù)報套接字)。

? ?- `State`:連接的狀態(tài),這里沒有顯示具體狀態(tài)。

? ?- `I-Node`:連接關聯(lián)的I-Node(索引節(jié)點)號。

? ?- `PID/Program name`:關聯(lián)的進程ID和程序名稱,這里是26313/systemd。

? ?- `Path`:連接關聯(lián)的路徑,這里是/run/user/0/systemd/notify。


2. `unix? 2? ? ? [ ACC ]? ? ?STREAM? ? ?LISTENING? ? ?13693? ? 1228/zabbix_server? ?/run/zabbix/zabbix_server_rtc.sock`

? ?- `Proto`:協(xié)議類型,這里是UNIX。

? ?- `RefCnt`:引用計數(shù),表示當前連接的引用數(shù)量。

? ?- `Flags`:標志位,這里是[ ACC ],表示連接處于"已接受"狀態(tài)。

? ?- `Type`:連接的類型,這里是STREAM(流套接字)。

? ?- `State`:連接的狀態(tài),這里是LISTENING(監(jiān)聽狀態(tài))。

? ?- `I-Node`:連接關聯(lián)的I-Node(索引節(jié)點)號。

? ?- `PID/Program name`:關聯(lián)的進程ID和程序名稱,這里是1228/zabbix_server。

? ?- `Path`:連接關聯(lián)的路徑,這里是/run/zabbix/zabbix_server_rtc.sock。


這些信息提供了關于網(wǎng)絡連接的詳細信息,包括連接類型、狀態(tài)、進程關聯(lián)和相關路徑。


### ss命令

`ss`命令是用于查看套接字(socket)信息的工具,具有比`netstat`更快速和更強大的功能。以下是一些常用的`ss`命令選項:


- `-t`:僅顯示 TCP 協(xié)議相關的套接字信息。

- `-u`:僅顯示 UDP 協(xié)議相關的套接字信息。

- `-w`:僅顯示 RAW 協(xié)議相關的套接字信息。

- `-x`:僅顯示 UNIX 域套接字信息。

- `-a`:顯示所有的套接字信息,包括監(jiān)聽和非監(jiān)聽狀態(tài)。

- `-l`:僅顯示監(jiān)聽狀態(tài)的套接字信息。

- `-o`:顯示計時器信息。

- `-e`:顯示詳細的套接字信息,包括用戶、inode、計時器等。

- `-i`:顯示網(wǎng)絡接口的信息和統(tǒng)計。

- `-p`:顯示與每個套接字關聯(lián)的進程/程序的PID和名稱。

- `-n`:以數(shù)字形式顯示 IP 地址和端口號,而不進行主機和服務名稱解析。

- `-r`:顯示路由表信息。

- `-s`:顯示網(wǎng)絡統(tǒng)計信息,如傳輸層統(tǒng)計和協(xié)議統(tǒng)計。

- `-4`:僅顯示 IPv4 套接字信息。

- `-6`:僅顯示 IPv6 套接字信息。


看看例子

>State? ? ? ? ? ? ? ? Recv-Q? ? ? ? ? ?Send-Q? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Local Address:Port? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Peer Address:Port? ? ? ? ? ? ? ? ?Process? ? ? ? ? ?

ESTAB? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?20.20.40.232:ssh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 10.110.0.9:23033? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

CLOSE-WAIT? ? ? ? ? ?32? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?xxx.xxx.xxx.xxx:58836? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?xxx.xxx.xxx.xxx:https?


逐行分析為:

根據(jù)提供的`ss`命令結(jié)果,逐行進行分析:


1. `ESTAB? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?20.20.40.232:ssh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 10.110.0.9:23033`

? ?- `State`:套接字的狀態(tài),這里是ESTAB,表示連接已建立。

? ?- `Recv-Q`:接收隊列中的數(shù)據(jù)大小,這里是0。

? ?- `Send-Q`:發(fā)送隊列中的數(shù)據(jù)大小,這里是0。

? ?- `Local Address:Port`:本地地址和端口,這里是20.20.40.232:ssh。

? ?- `Peer Address:Port`:對等端(遠程主機)地址和端口,這里是10.110.0.9:23033。


2. `CLOSE-WAIT? ? ? ? ? ?32? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?20.20.40.232:58836? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?xxx.xxx.xxx.xxx:https`

? ?- `State`:套接字的狀態(tài),這里是CLOSE-WAIT,表示本地端已關閉,但遠程端尚未關閉連接。

? ?- `Recv-Q`:接收隊列中的數(shù)據(jù)大小,這里是32。

? ?- `Send-Q`:發(fā)送隊列中的數(shù)據(jù)大小,這里是0。

? ?- `Local Address:Port`:本地地址和端口,這里是20.20.40.232:58836。

? ?- `Peer Address:Port`:對等端(遠程主機)地址和端口,這里是xxx.xxx.xxx.xxx:https。


這些信息提供了關于套接字的詳細信息,包括套接字狀態(tài)、數(shù)據(jù)隊列大小和本地/遠程地址與端口。


### traceroute命令

`traceroute`命令用于跟蹤數(shù)據(jù)包從本地主機到目標主機的路徑。它通過發(fā)送一系列的數(shù)據(jù)包,逐跳地測量和顯示每個跳點的延遲和路徑信息。以下是一些常用的`traceroute`命令選項:


- `-I`:使用ICMP Echo請求(類似于ping)進行跟蹤,默認使用UDP。

- `-T`:使用TCP SYN請求進行跟蹤。

- `-U`:使用UDP數(shù)據(jù)包進行跟蹤,默認使用UDP。

- `-n`:以數(shù)字形式顯示IP地址,而不進行主機名稱解析。

- `-q <次數(shù)>`:設置每個跳點發(fā)送的數(shù)據(jù)包數(shù)量。

- `-w <超時時間>`:設置等待響應的超時時間。

- `-m <跳數(shù)>`:設置跟蹤的最大跳數(shù)。

- `-p <端口號>`:指定使用的端口號。

- `-r`:忽略路由表,直接發(fā)送數(shù)據(jù)包到目標主機。

- `-s <源IP>`:設置源IP地址。

- `-z <等待時間>`:設置每個發(fā)送數(shù)據(jù)包之間的等待時間。

- `-f <生存時間>`:設置第一個TTL(生存時間)的值。

- `-l`:在最后一個跳點顯示主機名稱。

- `-a`:使用AS(自治系統(tǒng))號替代IP地址進行顯示。

- `-A`:顯示ASN(自治系統(tǒng)號)信息。

- `-w`:顯示每個跳點的時延信息。



`traceroute`命令的結(jié)果通常會顯示每個跳點的信息,包括跳點的序號、IP地址、主機名(如果可解析)、延遲和躍點數(shù)(TTL)。以下是`traceroute`命令可能顯示的一些常見結(jié)果:


1. 跳點的序號:每個跳點都會顯示一個序號,表示數(shù)據(jù)包通過的躍點數(shù)。序號從1開始遞增。


2. IP地址:每個跳點的IP地址將顯示出來。這是數(shù)據(jù)包到達該跳點的網(wǎng)絡設備的IP地址。


3. 主機名:如果IP地址可解析為主機名,則可能會顯示主機名。這需要進行反向DNS解析,因此不是每個跳點都會顯示主機名。


4. 延遲:每個跳點的延遲時間(通常以毫秒為單位)會顯示出來。它表示數(shù)據(jù)包從本地主機發(fā)送到該跳點并返回的往返時間。


5. 躍點數(shù)(TTL):躍點數(shù)表示數(shù)據(jù)包到達目標所經(jīng)過的跳點數(shù)量。每個數(shù)據(jù)包在經(jīng)過一個跳點后,躍點數(shù)會遞減,直到達到目標或躍點數(shù)為零。


6. 完成標志:當數(shù)據(jù)包到達目標主機時,會顯示一個完成標志,表示`traceroute`已經(jīng)到達目標并完成跟蹤。


需要注意的是,由于網(wǎng)絡環(huán)境的變化和路由策略的差異,不同跟蹤的結(jié)果可能會有所不同。


當`traceroute`命令的結(jié)果中,IP地址列顯示為星號(*)時,表示無法獲得該跳點的IP地址信息。這通常是因為網(wǎng)絡設備或防火墻配置的原因,導致無法獲取到該跳點的準確IP地址。這種情況下,`traceroute`無法確定經(jīng)過的網(wǎng)絡節(jié)點具體的IP地址。可能的原因包括:


1. 路由器或防火墻配置了規(guī)則,不允許`traceroute`請求通過,并且返回的ICMP回復中不包含IP地址信息。

2. 跳點設備的配置問題,導致無法返回準確的IP地址信息。

3. 路由器或防火墻對`traceroute`請求進行了過濾或屏蔽。


在這種情況下,`traceroute`仍然會顯示其他可用信息,如跳點的序號、延遲時間和躍點數(shù)(TTL),但無法提供具體的IP地址。


### telnet命令

`telnet`命令是一個用于遠程登錄或測試網(wǎng)絡連接的工具。以下是`telnet`命令的一些常見選項:


- `-l <username>`:指定要用于登錄的用戶名。

- `-p <port>`:指定要連接的目標端口號。

- `-4`:強制使用 IPv4 地址。

- `-6`:強制使用 IPv6 地址。

- `-a`:嘗試自動登錄(自動模式)。

- `-E`:在發(fā)送環(huán)境變量之前不等待遠程主機的確認。

- `-e <escape character>`:指定用于發(fā)送命令的轉(zhuǎn)義字符。

- `-k <realm>`:使用 Kerberos 5 認證,并指定領域。

- `-L`:啟用加密模式。

- `-r`:在連接建立后立即打開記錄文件。

- `-x`:使用加密傳輸模式。

- `-v`:顯示詳細的調(diào)試信息。


和traceroute類似


### ifconfig命令

`ifconfig`命令用于查看和配置網(wǎng)絡接口的信息,包括IP地址、網(wǎng)絡掩碼、MAC地址等。以下是一些常見的`ifconfig`命令選項:


- `<interface>`:指定要查看或配置的網(wǎng)絡接口名稱,如`eth0`、`wlan0`等。

- `up`:激活指定的網(wǎng)絡接口。

- `down`:停用指定的網(wǎng)絡接口。

- `promisc`:將指定的網(wǎng)絡接口設置為混雜模式,使其能夠捕獲經(jīng)過該接口的所有數(shù)據(jù)包。

- `hw <MAC address>`:設置指定網(wǎng)絡接口的物理地址(MAC地址)。

- `inet <IP address> [<netmask>]`:配置指定網(wǎng)絡接口的IPv4地址和可選的網(wǎng)絡掩碼。

- `inet6 <IPv6 address>/<prefix length>`:配置指定網(wǎng)絡接口的IPv6地址和前綴長度。

- `mtu <value>`:設置指定網(wǎng)絡接口的最大傳輸單元大小。

- `broadcast <IP address>`:設置指定網(wǎng)絡接口的廣播地址。

- `netmask <netmask>`:設置指定網(wǎng)絡接口的網(wǎng)絡掩碼。

- `metric <value>`:設置指定網(wǎng)絡接口的路由度量值。

- `txqueuelen <value>`:設置指定網(wǎng)絡接口的傳輸隊列長度。


這些只是`ifconfig`命令的一些常用選項,實際上還有更多選項和功能可用。為了獲取詳細的選項列表和用法說明,您可以在命令行中輸入`man ifconfig`以查看`ifconfig`命令的手冊頁。請注意,`ifconfig`在一些新的Linux發(fā)行版中已被`ip`命令所取代,因此建議盡量使用`ip`命令進行網(wǎng)絡接口的配置和管理。


來看一個例子

>eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500

? ? ? ? inet 20.20.40.232? netmask 255.255.248.0? broadcast 20.20.47.255

? ? ? ? inet6 fe80::2eea:7fff:fe93:ef5e? prefixlen 64? scopeid 0x20<link>

? ? ? ? ether 2c:ea:7f:93:ef:5e? txqueuelen 1000? (Ethernet)

? ? ? ? RX packets 39320669? bytes 46025532065 (42.8 GiB)

? ? ? ? RX errors 0? dropped 0? overruns 0? frame 0

? ? ? ? TX packets 40037370? bytes 5499509583 (5.1 GiB)

? ? ? ? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0

? ? ? ? device interrupt 17??

lo: flags=73<UP,LOOPBACK,RUNNING>? mtu 65536

? ? ? ? inet 127.0.0.1? netmask 255.0.0.0

? ? ? ? inet6 ::1? prefixlen 128? scopeid 0x10<host>

? ? ? ? loop? txqueuelen 1000? (Local Loopback)

? ? ? ? RX packets 5399237? bytes 819904930 (781.9 MiB)

? ? ? ? RX errors 0? dropped 0? overruns 0? frame 0

? ? ? ? TX packets 5399237? bytes 819904930 (781.9 MiB)

? ? ? ? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0


根據(jù)提供的輸出,我們可以分析兩個網(wǎng)絡接口:`eno1`和`lo`。


1. `eno1`接口:

? ?- `flags=4163<UP,BROADCAST,RUNNING,MULTICAST>`:指示該接口處于啟用狀態(tài),可以進行廣播和多播通信。

? ?- `mtu 1500`:指定該接口的最大傳輸單元大小為1500字節(jié)。

? ?- `inet 20.20.40.232`:指定該接口的IPv4地址為20.20.40.232。

? ?- `netmask 255.255.248.0`:指定該接口的IPv4網(wǎng)絡掩碼為255.255.248.0。

? ?- `broadcast 20.20.47.255`:指定該接口的IPv4廣播地址為20.20.47.255。

? ?- `inet6 fe80::2eea:7fff:fe93:ef5e`:指定該接口的IPv6地址為fe80::2eea:7fff:fe93:ef5e。

? ?- `prefixlen 64`:指定該接口的IPv6前綴長度為64。

? ?- `ether 2c:ea:7f:93:ef:5e`:指定該接口的物理地址(MAC地址)為2c:ea:7f:93:ef:5e。

? ?- `txqueuelen 1000`:指定該接口的傳輸隊列長度為1000。

? ?- `RX packets`和`TX packets`:指示該接口接收和發(fā)送的數(shù)據(jù)包數(shù)量。

? ?- `bytes`:指示該接口接收和發(fā)送的總字節(jié)數(shù)。

? ?- `RX errors`和`TX errors`:指示該接口接收和發(fā)送的錯誤數(shù)據(jù)包數(shù)量。

? ?- `device interrupt 17`:指示該接口使用的設備中斷號為17。


2. `lo`接口:

? ?- `flags=73<UP,LOOPBACK,RUNNING>`:指示該接口處于啟用狀態(tài),并支持環(huán)回(loopback)通信。

? ?- `mtu 65536`:指定該接口的最大傳輸單元大小為65536字節(jié)。

? ?- `inet 127.0.0.1`:指定該接口的IPv4地址為127.0.0.1,即本地環(huán)回地址。

? ?- `netmask 255.0.0.0`:指定該接口的IPv4網(wǎng)絡掩碼為255.0.0.0。

? ?- `inet6 ::1`:指定該接口的IPv6地址為::1,即本地環(huán)回地址。

? ?- `prefixlen 128`:指定該接口的IPv6前綴長度為128。

? ?- `loop`:指示該接口是一個本地環(huán)回接口。

? ?- `txqueuelen 1000`:指定該接口的傳輸隊列長度為1000。

? ?- `RX packets`和`TX packets`:指示該接口接收和發(fā)送的數(shù)據(jù)包數(shù)量。

? ?- `bytes`:指示該接口接收和發(fā)送的總字節(jié)數(shù)。

? ?- `RX errors`和`TX errors`:指示該接口接收和發(fā)送的錯誤數(shù)據(jù)包數(shù)量。


綜上所述,`eno1`是一個活動的以太網(wǎng)接口,具有IPv4和IPv6地址,而`lo`是一個本地環(huán)回接口,用于在本地進行回環(huán)測試和通信。



## 殺死進程的kill命令

`kill`命令可以發(fā)送不同的信號給進程,以便控制其行為。以下是一些常見的`kill`命令信號及其對應的編號:


- **SIGTERM** (15):默認的終止信號,請求進程正常終止。

- **SIGHUP** (1):終端掛起信號,通常用于通知進程重新加載配置文件或重新啟動。

- **SIGINT** (2):終端中斷信號,通常由Ctrl+C鍵觸發(fā),用于中斷正在運行的進程。

- **SIGKILL** (9):強制終止信號,立即終止進程,無法捕獲或忽略。該信號無法被阻塞、處理或忽略,是一種"殺手锏"。

- **SIGSTOP** (19):停止信號,暫停進程的執(zhí)行。類似于Ctrl+Z鍵觸發(fā)的暫停操作。

- **SIGCONT** (18):繼續(xù)信號,恢復被暫停的進程的執(zhí)行。


除了上述常見的信號外,還有其他信號可供使用,具體的信號列表可以通過`kill -l`命令查看。該命令會列出系統(tǒng)支持的所有信號及其對應的編號。


例如,可以通過以下命令查看信號列表:


```shell

kill -l

```

### 殺死某個名稱的進程

ps -aux | grep 'python3 main.py' | awk '{print $2}' | xargs kill -9


### kill、pkill和killall命令

`kill`、`pkill`和`killall`命令都用于終止正在運行的進程,但它們在使用方式和作用范圍上有所不同。


1. `kill`命令:

? ?- 作用:向指定進程發(fā)送信號以終止它。

? ?- 語法:`kill [選項] <進程ID>`

? ?- 常用選項:

? ? ?- `-l`:列出所有可用的信號。

? ? ?- `-s <信號>`:指定要發(fā)送的信號。

? ?- 示例:`kill -9 1234`(發(fā)送強制終止信號9給進程ID為1234的進程)。


2. `pkill`命令:

? ?- 作用:根據(jù)進程名或其他屬性選擇并終止進程。

? ?- 語法:`pkill [選項] <進程名>`

? ?- 常用選項:

? ? ?- `-f`:使用進程的完整命令行匹配。

? ? ?- `-u <用戶名>`:根據(jù)用戶名選擇進程。

? ?- 示例:`pkill -f nginx`(終止所有包含"nginx"關鍵字的進程)。


3. `killall`命令:

? ?- 作用:根據(jù)進程名終止進程。

? ?- 語法:`killall [選項] <進程名>`

? ?- 常用選項:

? ? ?- `-e`:精確匹配進程名。

? ? ?- `-u <用戶名>`:根據(jù)用戶名選擇進程。

? ?- 示例:`killall -e firefox`(終止所有名為"firefox"的進程)。


需要注意的是,使用這些命令時要小心確認要終止的進程,以免意外關閉重要的進程。在使用強制終止信號(如9號信號)時,進程可能無法進行正常的清理操作,因此建議在必要時使用,并確保備份數(shù)據(jù)。




監(jiān)控運維命令詳解的評論 (共 條)

分享到微博請遵守國家法律
房产| 晋宁县| 西林县| 本溪市| 雷山县| 板桥市| 买车| 开鲁县| 安龙县| 平和县| 辉县市| 海兴县| 南丰县| 驻马店市| 广丰县| 彰武县| 辽宁省| 嵊州市| 富宁县| 通化市| 新巴尔虎右旗| 叶城县| 邵阳市| 磴口县| 开封市| 浦江县| 四子王旗| 横山县| 全椒县| 伊吾县| 荔浦县| 志丹县| 双柏县| 潜江市| 双江| 井研县| 孟连| 普定县| 新源县| 金昌市| 太白县|