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 ...
一周排行
  • 1. 雲停車 (開篇)2. 雲停車 (硬體篇)3. 雲停車 (業務篇)4. 雲停車 (平臺篇)5. 雲停車 (源碼篇) 網址:http://42.194.142.223:8091/Home 賬戶:admin 密碼:[email protected] 在場記錄 出入記錄 月租車繳費記錄 臨時車繳費記錄 車場 ...
  • 1.RabbitMQ簡介 因為RabbitMQ是基於開源的AMQP協議來實現的,所以在瞭解MQ時候,首先我們來瞭解下AMQP協議。AMQP,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,為面向消息的 ...
  • 1.AMQP Messaging中的基本概念 Broker:接收和分發消息的應用,RabbitMQ Server就是Message Broker。Virtual Host:出於多租戶和安全因素設計的,把AMQP的基本組件劃分到一個虛擬的分組中,類似於網路中的Namespace概念。當多個不同的用戶使 ...
  • 在顯示或者隱藏視窗的時候,可以利用Windows API中的AnimateWindow函數實現一些特殊的效果。主要的動畫類型有四種:滾動、幻燈片、摺疊或展開和alpha混合漸變。 ##視窗動畫效果 首先定義動畫工具類,引入AnimateWindow函數。 public class WindowsEf ...
  • 泥水佬大佬的地址已經不能下載,所以分享下。 用法很簡單,輸入地址即可。 鏈接:https://pan.baidu.com/s/1OUeybjqY9uGWmxe_ywgwgQ 提取碼:nls9 ...
  • //前提需要 //需要一個 serialPort 工具 可在vs自帶的工具欄中獲得 //源代碼加串口工具地址: //鏈接:https://pan.baidu.com/s/1YbfvdXEmfsJX87D-Jxljyg 提取碼:d32x //記錄用戶打開的串口號 可改為泛型模式 string seri ...
  • 從業務視角還原問題、業務視角抽象問題、二次抽象發現技術問題,作為思考問題的三個還原點。 提煉單點問題解決能力、思考單點問題解決能力,複製、層層遞進思考問題,從深度和廣度出發, 深度以數據作指標,廣度以領域做方向。 腳踏實地的代碼量成長沒有捷徑。 ...
  • Java電子書分類 Java、Spring、SpringBoot、SpringCloud、mybatis、Tomcat、多線程、Git相關、Redis、設計模式、Nginx、Linux、演算法、資料庫、大數據、架構 電子書大概有30G左右 部分電子書截圖 領取方式 加我的微信(s2001sssss)免 ...
  • 一.node啟動js公鑰加密 //需要導入模塊npm install node-forge var arguments = process.argv.splice(2); // console.log('所傳遞的參數是:', arguments); var e = arguments[1]; var ...
  • LeetCode–最長公共首碼 博客說明 文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝! 說明 leetcode題,14題 最長公共首碼 題目 編寫一個函數來查找字元串數組中的最長公共首碼。 如果不存在公共首碼,返回空字元串 ""。 示例 ...