毎月の発信トラフィック制限

毎月の発信トラフィック制限

私は1ヶ月間のトラフィックを制限し、トラフィックが超過した場合に課金される仮想サーバープランを研究しています。

発信トラフィックを自動的に追跡し、サービスが制限に近づくと自動的に停止できるようにしたいと思います。

Linuxでこれを達成するためにどのツールを使用できますか?

ありがとうございます!

ベストアンサー1

さて、制限が何であるか、スクリプトの能力が何であるかわからない場合でも、ここに提案があります。

インストールvnstat- Ubuntuは含まれている悪魔プロセスを自動的に開始し、ネットワーク監視を即座に開始します(コンテンツスヌーピングではなくトラフィック統計のみ)。

次のようにインタラクティブに表示できます。

vnstat
Database updated: 2023-09-30 09:40:00

   enp0s31f6 since 2023-09-30

          rx:  7.85 GiB      tx:  93.23 MiB      total:  7.94 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       2023-09      7.85 GiB |   93.23 MiB |    7.94 GiB |   26.88 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      8.02 GiB |   93.93 MiB |    8.11 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today      7.85 GiB |   93.23 MiB |    7.94 GiB |    1.96 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated     19.48 GiB |  231.46 MiB |   19.71 GiB |

コマンドラインスイッチを使用して転送されたデータのみを抽出することもできます(例:awk次の例では、転送される111 MBのデータを調べます。

vnstat --oneline b |awk -F';' '{print $10/1024/1024}'
111.726

これをcronで実行されているシェルスクリプトに貼り付け、5分ごとに転送ボリュームをしきい値と比較し、スクリプトにサービスを停止させることができます。 1 か月間 5 GB の送信トラフィックを許可するとします。

#!/bin/bash
[  $(/usr/bin/vnstat --oneline b |/usr/bin/awk -F';' '{printf "%d", $10/1024/1024}') -gt 5000 ] && /usr/bin/systemctl stop service

入れrootておけばcrontab笑います。

おすすめ記事