根据路况在 Ubuntu 限速

Limit Speed in Ubuntu based on traffic

我遇到了一个脚本,即 Wondershaper

脚本很棒,但是有什么方法可以让它更智能吗?

在某些流量经过 运行 秒后点赞?

假设每天设置 1TB,一旦达到 1TB,脚本会自动打开吗?

我考虑过设置crn工作,

在凌晨 12 点,它清除了 wondershaper,并且在 15 分钟的间隔内,它检查服务器是否超过了当天的 1TB 限制,如果是,那么它 运行 是限制器,

但我不确定如何设置第二部分,我怎样才能设置一种方法,在超过 1TB 后使限制器达到 运行?

删除代码

wondershaper -ca eth0

限制码

wondershaper -a eth0 -u 154000

我为此制作了一个自定义脚本,因为在系统内无法执行此操作,我不得不发挥创意并对数据中心进行 API 调用,然后 运行定时作业。

我也用bashjson,到运行吧。我附上了下面的脚本。

date=$(date +%F)
url='API URL /metrics/datatraffic?from='
url1='T00:00:00Z&to='
url2='T23:59:59Z&aggregation=SUM'
final="$url$date$url1$date$url2"

wget --no-check-certificate -O output.txt \
  --method GET \
  --timeout=0 \
  --header 'X-Lsw-Auth: API AUTH' \
   $final

sed 's/[][]//g' output.txt >> test1.json // will remove '[]' from the code just to make things easier for bashjson to understand
down=$(/root/bashjson/bashjson.sh test1.json metrics DOWN_PUBLIC values value) // outputs the data to variable
up=$(/root/bashjson/bashjson.sh test1.json metrics UP_PUBLIC values value)


newdown=$(printf "%.14f" $down)
newup=$(printf "%.14f" $up)


upp=$(printf "%.0f\n" "$newup") // removes scientific notation as bash does not like it
downn=$(printf "%.0f\n" "$newdown")

if (($upp>800000000000 | bc))
then
wondershaper -a eth0 -u 100000 //main command to limit
else
echo uppworks
fi

if (($downn>500000000000 | bc))
then
wondershaper -a eth0 -d 100000
else
echo downworks
fi

rm -rf output.txt test1.json

echo $upp
echo $downn

您可以随时根据自己的喜好进行更新。