根据路况在 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
您可以随时根据自己的喜好进行更新。
我遇到了一个脚本,即 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
您可以随时根据自己的喜好进行更新。