以下脚本可用于对服务器进行上传限速,当业务使用处于高峰期时,为不影响业务的正常使用,限制上传速度,保证能正常提供服务。
原理是使用linux中的TC(流量控制模块)实现限速功能。
脚本的使用如下:
启动:sh limit.sh start 200 (限制上传速度为200kb/s)
停止:sh limit.sh stop
#!/bin/bash #a simple example for "tc" #set the param DELAY=20 SPEED=$2 FLOW=0 #出口网卡 NETWORK_CARD=$(ip ro get 115.29.128.27 | grep eth | awk '{print $5}') #服务器IP IP_ADDRESS=115.29.128.28 start () { /sbin/tc qdisc add dev ${NETWORK_CARD} root handle 1: htb default 25 /sbin/tc class add dev ${NETWORK_CARD} parent 1: classid 1:1 htb rate ${SPEED}kbps /sbin/tc qdisc add dev ${NETWORK_CARD} parent 1:1 netem delay ${DELAY}ms ${FLOW}ms /sbin/tc filter add dev ${NETWORK_CARD} parent 1: protocol ip prio 1 u32 match ip dst ${IP_ADDRESS}/32 flowid 1:1 } stop () { /sbin/tc qdisc dele dev ${NETWORK_CARD} root } case "$1" in start) start ;; stop) stop ;; *) echo "Usage: `basename $0` {start|stop} speed(kb/s)" esac
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/xiaokfc/article/details/46863101