目錄shell
生產環境中, 網絡時延是一個很重要的指標. 爲了方便檢查網絡時延的大小, 咱們能夠經過ping
命令實現長時間的網絡監控.centos
-i
: 每次執行ping操做的間隔時間, 默認是1s;網絡
-c
: 執行ping操做的次數, 默認是一直執行, 除非被中斷;ssh
-s
: 指定執行ping操做時發送的包的大小, 默認是56B, 添加報文頭以後, 最終發送的是64B.this
# 在終端 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 的結果經過管道進行處理..net
爲了方便後期查看, 也防止退出終端時命令被中斷, 咱們能夠經過後臺運行命令(腳本)的方式進行操做.日誌
腳本內容以下:code
#!/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
命令 纔會將結果輸出到文件中.blog
爲防止腳本被中斷, 能夠經過 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
參考資料
版權聲明
出處: 博客園 瘦風-記錄時間(https://www.cnblogs.com/shoufeng)
感謝閱讀, 若是文章有幫助或啓發到你, 點個[好文要頂👆] 或 [推薦👍] 吧😜
本文版權歸博主全部, 歡迎轉載, 但 [必須在文章頁面明顯位置標明原文連接], 不然博主保留追究相關人員法律責任的權利.