Mikhail Ramendik Asked: 2023-09-29 20:51:53 +0800 CST2023-09-29 20:51:53 +0800 CST 2023-09-29 20:51:53 +0800 CST 限制每月传出流量 772 我正在查看虚拟服务器的资费,该资费限制一个月的传出流量,如果超出流量则计费。 我想以某种方式自动跟踪传出流量,以便在接近限制时我可以自动停止服务。 在 Linux 中我可以使用什么工具来实现此目的? 谢谢! networking 2 个回答 Voted Grigorios 2023-09-29T22:00:53+08:002023-09-29T22:00:53+08:00 格拉法纳+普罗米修斯。 在任何系统/服务器上设置这些并在客户端系统上安装 prometheus-node-exporter。然后,在 Grafana 中,您可以在达到某个阈值时编写自定义警报,例如流出的数据量。 Best Answer tink 2023-09-30T05:03:12+08:002023-09-30T05:03:12+08:00 好吧,不知道限制是什么,也不知道您编写脚本的能力如何,这里有一个建议。 安装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 运行的 shell 脚本中,例如每 5 分钟运行一次,并将传输量与阈值进行比较,然后让脚本停止服务。假设您一个月内允许传出 5 G 的流量。 #!/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你就会笑了。
格拉法纳+普罗米修斯。
在任何系统/服务器上设置这些并在客户端系统上安装 prometheus-node-exporter。然后,在 Grafana 中,您可以在达到某个阈值时编写自定义警报,例如流出的数据量。
好吧,不知道限制是什么,也不知道您编写脚本的能力如何,这里有一个建议。
安装
vnstat
- 在 Ubuntu 上将自动启动附带的恶魔进程,该进程将立即开始监视网络(仅用于流量统计,而不是内容窥探)。您可以交互式地查看它,如下所示:
您还可以使用命令行开关仅提取传输的数据,例如
awk
。在下面的示例中,我们查看传输的 111 MB 数据。您可以将其粘贴到从 cron 运行的 shell 脚本中,例如每 5 分钟运行一次,并将传输量与阈值进行比较,然后让脚本停止服务。假设您一个月内允许传出 5 G 的流量。
把它放进去
root
,crontab
你就会笑了。