生産環境中, 網絡是否穩定(網絡時延)是一個很重要的名額. 為了友善檢查網絡時延的大小, 我們可以通過 “ping” 指令實作長時間的網絡監控.
目錄
- 1 ping 指令的使用
- 1.1 常用參數
- 1.2 使用示例
- 2 通過腳本記錄時間戳
- 參考資料
- 版權聲明
生産環境中, 網絡是否穩定(網絡時延)是一個很重要的名額. 為了友善檢查網絡時延的大小, 我們可以通過
ping
指令實作長時間的網絡監控.
-i
: 每次執行ping操作的間隔時間, 預設是1s;
-c
: 執行ping操作的次數, 預設是一直執行, 除非被中斷;
-s
: 指定執行ping操作時發送的包的大小, 預設是56B, 添加封包頭之後, 最終發送的是64B.
# 在終端 ping 某個位址, 執行3次, 每次間隔2秒, 每次發送10KB的資料:
[root@localhost ~]# 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
很多時候, 我們除了監控網絡時延的大小, 還想知道網絡發生抖動時的具體時間 —— 可以将 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:
[root@localhost ~]# 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
[root@localhost ~]# kill -9 36538
centos長ping輸出日志的腳本
作者: 瘦風(https://healchow.com)
出處: 部落格園 瘦風-記錄時間(https://www.cnblogs.com/shoufeng)
感謝閱讀, 如果文章有幫助或啟發到你, 點個[好文要頂👆] 或 [推薦👍] 吧😜
本文版權歸部落客所有, 歡迎轉載, 但 [必須在文章頁面明顯位置标明原文連結], 否則部落客保留追究相關人員法律責任的權利.