Shell - 長 ping 腳本監控網路狀態

来源:https://www.cnblogs.com/shoufeng/archive/2019/11/30/11962886.html

生產環境中, 網路是否穩定(網路時延)是一個很重要的指標. 為了方便檢查網路時延的大小, 我們可以通過 “ping” 命令實現長時間的網路監控. ...


生產環境中, 網路是否穩定(網路時延)是一個很重要的指標. 為了方便檢查網路時延的大小, 我們可以通過ping命令實現長時間的網路監控.

1 ping 命令的使用

1.1 常用參數

-i: 每次執行ping操作的間隔時間, 預設是1s;

-c: 執行ping操作的次數, 預設是一直執行, 除非被中斷;

-s: 指定執行ping操作時發送的包的大小, 預設是56B, 添加報文頭之後, 最終發送的是64B.

1.2 使用示例

# 在終端 ping 某個地址, 執行3次, 每次間隔2秒, 每次發送10KB的數據:
[[email protected] ~]# ping -c 3 -i 2 -s 10240 172.16.22.132

# 結果如下:
PING 172.16.22.132 (172.16.22.132) 10240(10268) bytes of data.
10248 bytes from 172.16.22.132: icmp_seq=1 ttl=64 time=0.294 ms
10248 bytes from 172.16.22.132: icmp_seq=2 ttl=64 time=0.383 ms
10248 bytes from 172.16.22.132: icmp_seq=3 ttl=64 time=0.391 ms

--- 172.16.22.132 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.294/0.356/0.391/0.043 ms

2 通過腳本記錄時間戳

很多時候, 我們除了監控網路時延的大小, 還想知道網路發生抖動時的具體時間 —— 可以將 ping 的結果通過管道進行處理.

為了方便後期查看, 也防止退出終端時命令被中斷, 我們可以通過後臺運行命令(腳本)的方式進行操作.

腳本內容如下:

#!/usr/bin/sh

# ping 86400次, 預設間隔1秒, 也就是24小時
ping -c 86400 -i 1 -s 10240 172.16.22.131 | awk '{ print $0"\t" strftime("%D_%H:%M:%S",systime()) }' > ping_result.log

註意: 只有當腳本運行結束(或被kill掉), awk命令 才會將結果輸出到文件中.

為防止腳本被中斷, 可以通過 nohup 令腳本在後臺執行:

nohup sh long_ping.sh &

要結束後臺進程, 可通過下述方式查找並kill:

[[email protected] ~]# ps aux | grep long
root     36538  0.0  0.0 113120  1344 pts/3    S    16:02   0:00 sh long_ping.sh
root     37451  0.0  0.0 112652   960 pts/3    S+   16:03   0:00 grep --color=auto long
[[email protected] ~]# kill -9 36538


參考資料

centos長ping輸出日誌的腳本

版權聲明

作者: 瘦風(https://healchow.com)

出處: 博客園 瘦風-記錄時間(https://www.cnblogs.com/shoufeng)

感謝閱讀, 如果文章有幫助或啟發到你, 點個[

更多相關文章
  • 這是Orleans團隊的帖子。Orleans是用於使用.NET構建分散式應用程式的跨平臺框架。有關更多信息,請參見 "https://github.com/dotnet/orleans" 。 我們很高興宣佈Orleans 3.0版本。自Orleans 2.0以來,進行了大量改進和修複,並提供了一些新 ...
  • 一、概述 1、通過反射可以提供類型信息,從而使得我們開發人員在運行時能夠利用這些信息構造和使用對象 2、反射機制允許程式在執行過程中動態地添加各種功能 二、運行時類型標識 1、運行時類型標誌(RTTI),可以在程式執行期間判斷對象類型。例如使用他能夠確切的知道基類引用指向了什麼類型對象。 2、運行時 ...
  • 在我們基於微信開發框架各種微信項目的時候,往往一個場景一個菜單集合,多個微信項目就可能存在多個不同的菜單組合。由於微信菜單的數量限制,我們想測試一下其他不同項目的菜單功能的時候,如果沒有一個很好的管理方案,就會顯得很麻煩,本篇隨筆介紹如何在管理微信菜單的基礎上增加一個菜單組的概念,以便隨時激活某個項... ...
  • 在上文ASP.NET MVC5基礎 – MVC文件架構中我們簡單瞭解了下控制器Controller的作用,本文我將詳細介紹控制器Controller的使用方法。 Controller的運行過程 上文我們已經講到,控制器負責響應瀏覽器傳送過來的所有請求。在MVC中,每一個瀏覽器請求都映射到一個控制器( ...
  • 先看下效果: 流程: 1.新建WatermarkTextBox類,繼承自TextBox。添加依賴項屬性Watermark(水印)、WatermarkForeground(水印前景色)。 1 public class WatermarkTextBox : TextBox 2 { 3 #region D ...
  • 1.使用NuGet安裝以下依賴: Swashbuckle.AspNetCore.Swagger Swashbuckle.AspNetCore.SwaggerGEN Swashbuckle.AspNetCore.SwaggerUI 註:版本選最高版本的,我選 5.0 rc4 2.在ConfigureS ...
  • SI是一個受到廣泛歡迎的代碼閱讀/編輯器,那麼能不能用SI來進行python開發呢,經過一晚上的試驗,終於實現了這一功能。 1.python的語法高亮 source insight 4.0版本已經預設支持python語言的語法高亮,無須另外設置 當然可以自行設置主題、字體大小等以符合個人閱讀編輯習慣 ...
  • crontab安裝(centOS) yum y install vixie cron crontab語法(計劃任務) crontab [ u user] file crontab [ u user] [ e | l | r ] (default operation is replace, per 1 ...
一周排行
  • 前幾天發佈了 "抄抄《CSS 故障藝術》的動畫" 這篇文章,在這篇文章里介紹瞭如何使用Win2D繪製文字然後配合BlendEffect製作故障藝術的動畫。本來打算就這樣收手不玩這個動畫了,但後來又發現性能不符合理想。明明只是做做Resize動畫和用BlendEffect混合,為什麼性能會這麼差呢? ...
  • 控制條控制項: progressBar 不能按照你程式的進程自動變化,需認為計算,調整變化量 private void progressBar1_Click(object sender, EventArgs e) { this.progressBar1.Maximum = 100;//設置進度條最大長 ...
  • 首先創建一個asp.net core web應用程式 第二步 目前官方預置了7種模板項目供我們選擇。從中我們可以看出,既有我們熟悉的MVC、WebAPI,又新添加了Razor Page,以及結合比較流行的Angular、React前端框架的模板項目。 空項目模板 Program.cs using S ...
  • 對閉包的理解 1.對於成員變數和局部變數:成員變數就是方法外部,類的內部定義的變數;局部變數就是方法或語句塊內部定義的變數。局部變數必須初始化。 形式參數是局部變數,局部變數的數據存在於棧記憶體中。棧記憶體中的局部變數隨著方法的消失而消失。成員變數存儲在堆中的對象裡面,由垃圾回收器負責回收。 成員變數它 ...
  • Xamarin.Forms讀取並展示Android和iOS通訊錄 TerminalMACS客戶端 本文同步更新地址: https://dotnet9.com/11520.html https://terminalmacs.com/861.html 閱讀導航: 一、功能說明 二、代碼實現 三、源碼獲取 ...
  • 做下對文件複製操作相關的筆記: /// <summary> /// 文件幫助類 /// </summary> public class FileHelper { /// <summary> /// 複製一個目錄下所有文件到一個新目錄下 /// </summary> /// <param name=" ...
  • 前言 有一個東西叫做鴨子類型,所謂鴨子類型就是,只要一個東西表現得像鴨子那麼就能推出這玩意就是鴨子。 C 裡面其實也暗藏了很多類似鴨子類型的東西,但是很多開發者並不知道,因此也就沒法好好利用這些東西,那麼今天我細數一下這些藏在編譯器中的細節。 不是只有 和 才能 在 C 中編寫非同步代碼的時候,我們經 ...
  • [toc] 1.應用背景 底端設備有大量網路報文(位元組數組):心跳報文,數據採集報文,告警報文上報。需要有對應的報文結構去解析這些位元組流數據。 2.結構體解析 由此,我第一點就想到了用結構體去解析。原因有以下兩點: 2.1.結構體存在棧中 類屬於引用類型,存在堆中;結構體屬於值類型,存在棧中,在一個 ...
  • 《深入淺出 C#》 (第3版) [作者] (美) Andrew Stellman (美) Jennifer Greene[譯者] (中) 徐陽 丁小峰 等譯[出版] 中國電力出版社[版次] 2016年08月 第1版[印次] 2018年04月 第4次 印刷[定價] 148.00元 【引子】 要學習編程 ...
  • 記錄使用對象初始值設定項初始化對象。 using System; using System.Collections.Generic; namespace ConsoleApp2 { class Program { static void Main(string[] args) { // 使用構造函數 ...
x