Автор Тема: Traffic Shaper  (Прочетена 6233 пъти)

mozly

  • Напреднали
  • *****
  • Публикации: 127
    • Профил
Traffic Shaper
« -: Jul 18, 2004, 22:25 »
ок знам ,че вероятно има много писано по темата и ако може някои да ме насочи към друга тема във форума или към статия

трябра ми ограничение на трафика имам нереално ип зад шлюз(с реално) и шлюза трябва да прави ограничение на трафика как ?

намерих iproute2 i tc
но при
tc class add dev eth0 parent 1: classid 1:1 htb rate 116kbit
ми дава Еrror:Qdisc htb is classless
htb е компилирано като модул и зареден

Ос: Slackware 9.0 ,kernel-2.6.1
Активен

BMW - MPowering The Generation

kennedy

  • Напреднали
  • *****
  • Публикации: 2151
  • Николай Колев
    • Профил
Traffic Shaper
« Отговор #1 -: Jul 19, 2004, 06:54 »
http://www.linux-bg.org/cgi-bin....=shaper
Активен

"за всичко иде час" Еклесиаст 3:1
всеки пост - отговор на въпрос
-----------------
24.12.2003 "MS Free"

  • Гост
Traffic Shaper
« Отговор #2 -: Jul 19, 2004, 13:16 »
cbq ще ти свърши чудесна работа.Потърси из сайта тук има доста писано по темата.
Поздрави...
Активен

  • Гост
Traffic Shaper
« Отговор #3 -: Jul 19, 2004, 14:55 »
как да стартирам cbw.init '<img'>
имам един скрипт и искам да го пробвам

cbq.init start

не става
Активен

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Traffic Shaper
« Отговор #4 -: Jul 19, 2004, 23:16 »
Няма да стане само със скрипта, трябват ти и файлове с правила за шейпването. Примерни такива има в самия скрипт ако го разгледаш.
Активен

mozly

  • Напреднали
  • *****
  • Публикации: 127
    • Профил
Traffic Shaper
« Отговор #5 -: Jul 19, 2004, 23:30 »
нещо не схващам аз си направих собствено cbq
да нямаш предвид ей това

Примерен код

export LC_ALL=C

### Command locations
TC=/sbin/tc
IP=/sbin/ip
MP=/sbin/modprobe

### Default filter priorities (must be different)
PRIO_RULE_DEFAULT=${PRIO_RULE:-100}
PRIO_MARK_DEFAULT=${PRIO_MARK:-200}
PRIO_REALM_DEFAULT=${PRIO_REALM:-300}

### Default CBQ_PATH & CBQ_CACHE settings
CBQ_PATH=${CBQ_PATH:-/etc/sysconfig/cbq}
CBQ_CACHE=${CBQ_CACHE:-/var/cache/cbq.init}

### Uncomment to enable logfile for debugging
#CBQ_DEBUG="/var/run/cbq-$1"

### Modules to probe for. Uncomment the last CBQ_PROBE
### line if you have QoS support compiled into kernel
CBQ_PROBE="sch_cbq sch_tbf sch_sfq sch_prio"
CBQ_PROBE="$CBQ_PROBE cls_fw cls_u32 cls_route"
#CBQ_PROBE=""

### Keywords required for qdisc & class configuration
CBQ_WORDS="DEVICE|RATE|WEIGHT|PRIO|PARENT|LEAF|BOUNDED|ISOLATED"
CBQ_WORDS="$CBQ_WORDS|PRIO_MARK|PRIO_RULE|PRIO_REALM|BUFFER"
CBQ_WORDS="$CBQ_WORDS|LIMIT|PEAK|MTU|QUANTUM|PERTURB"


#############################################################################
############################# SUPPORT FUNCTIONS #############################
#############################################################################

### Get list of network devices
cbq_device_list () {
   ip link show| sed -n "/^[0-9]/ \
      { s/^[0-9]\+: \([a-z0-9._]\+\)[:@].*/\1/; p; }"
} # cbq_device_list


### Remove root class from device $1
cbq_device_off () {
   tc qdisc del dev $1 root 2> /dev/null
} # cbq_device_off


### Remove CBQ from all devices
cbq_off () {
   for dev in `cbq_device_list`; do
      cbq_device_off $dev
   done
} # cbq_off


### Prefixed message
cbq_message () {
   echo -e "**CBQ: $@"
} # cbq_message

### Failure message
cbq_failure () {
   cbq_message "$@"
   exit 1
} # cbq_failure

### Failure w/ cbq-off
cbq_fail_off () {
   cbq_message "$@"
   cbq_off
   exit 1
} # cbq_fail_off


### Convert time to absolute value
cbq_time2abs () {
   local min=${1##*:}; min=${min##0}
   local hrs=${1%%:*}; hrs=${hrs##0}
   echo $[hrs*60 + min]
} # cbq_time2abs


### Display CBQ setup
cbq_show () {
   for dev in `cbq_device_list`; do
      [ `tc qdisc show dev $dev| wc -l` -eq 0 ] && continue
      echo -e "### $dev: queueing disciplines\n"
      tc $1 qdisc show dev $dev; echo

      [ `tc class show dev $dev| wc -l` -eq 0 ] && continue
      echo -e "### $dev: traffic classes\n"
      tc $1 class show dev $dev; echo

      [ `tc filter show dev $dev| wc -l` -eq 0 ] && continue
      echo -e "### $dev: filtering rules\n"
      tc $1 filter show dev $dev; echo
   done
} # cbq_show


### Check configuration and load DEVICES, DEVFIELDS and CLASSLIST from $1
cbq_init () {
   ### Get a list of configured classes
   CLASSLIST=`find $1 \( -type f -or -type l \) -name 'cbq-*' \
      -not -name '*~' -maxdepth 1 -printf "%f\n"| sort`
   [ -z "$CLASSLIST" ] &&
      cbq_failure "no configuration files found in $1!"

   ### Gather all DEVICE fields from $1/cbq-*
   DEVFIELDS=`find $1 \( -type f -or -type l \) -name 'cbq-*' \
        -not -name '*~' -maxdepth 1| xargs sed -n 's/#.*//; \
        s/[[:space:]]//g; /^DEVICE=[^,]*,[^,]*\(,[^,]*\)\?/ \
        { s/.*=//; p; }'| sort -u`
   [ -z "$DEVFIELDS" ] &&
      cbq_failure "no DEVICE field found in $1/cbq-*!"

   ### Check for different DEVICE fields for the same device
   DEVICES=`echo "$DEVFIELDS"| sed 's/,.*//'| sort -u`
   [ `echo "$DEVICES"| wc -l` -ne `echo "$DEVFIELDS"| wc -l` ] &&
      cbq_failure "different DEVICE fields for single device!\n$DEVFIELDS"
} # cbq_init


### Load class configuration from $1/$2
cbq_load_class () {
   CLASS=`echo $2| sed 's/^cbq-0*//; s/^\([0-9a-fA-F]\+\).*/\1/'`
   CFILE=`sed -n 's/#.*//; s/[[:space:]]//g; /^[[:alnum:]_]\+=[[:alnum:].,:;/*@-_]\+$/ p' $1/$2`

   ### Check class number
   IDVAL=`/usr/bin/printf "%d" 0x$CLASS 2> /dev/null`
   [ $? -ne 0 -o $IDVAL -lt 2 -o $IDVAL -gt 65535 ] &&
      cbq_fail_off "class ID of $2 must be in range <0002-FFFF>!"

   ### Set defaults & load class
   RATE=""; WEIGHT=""; PARENT=""; PRIO=5
   LEAF=tbf; BOUNDED=yes; ISOLATED=no
   BUFFER=10Kb/8; LIMIT=15Kb; MTU=1500
   PEAK=""; PERTURB=10; QUANTUM=""

   PRIO_RULE=$PRIO_RULE_DEFAULT
   PRIO_MARK=$PRIO_MARK_DEFAULT
   PRIO_REALM=$PRIO_REALM_DEFAULT

   eval `echo "$CFILE"| grep -E "^($CBQ_WORDS)="`

   ### Require RATE/WEIGHT
   [ -z "$RATE" -o -z "$WEIGHT" ] &&
      cbq_fail_off "missing RATE or WEIGHT in $2!"

   ### Class device
   DEVICE=${DEVICE%%,*}
   [ -z "$DEVICE" ] && cbq_fail_off "missing DEVICE field in $2!"

   BANDWIDTH=`echo "$DEVFIELDS"| sed -n "/^$DEVICE,/ \
        { s/[^,]*,\([^,]*\).*/\1/; p; q; }"`

   ### Convert to "tc" options
   PEAK=${PEAK:+peakrate $PEAK}
   PERTURB=${PERTURB:+perturb $PERTURB}
   QUANTUM=${QUANTUM:+quantum $QUANTUM}

   [ "$BOUNDED" = "no" ] && BOUNDED="" || BOUNDED="bounded"
   [ "$ISOLATED" = "yes" ] && ISOLATED="isolated" || ISOLATED=""
} # cbq_load_class


#############################################################################
#################################### INIT ###################################
#############################################################################

### Check for presence of ip-route2 in usual place
[ -x $TC -a -x $IP ] ||
   cbq_failure "ip-route2 utilities not installed or executable!"


### ip/tc wrappers
if [ "$1" = "compile" ]; then
   ### no module probing
   CBQ_PROBE=""

   ip () {
      $IP "$@"
   } # ip

   ### echo-only version of "tc" command
   tc () {
      echo "$TC $@"
   } # tc

elif [ -n "$CBQ_DEBUG" ]; then
   echo -e "# `date`" > $CBQ_DEBUG

   ### Logging version of "ip" command
   ip () {
      echo -e "\n# ip $@" >> $CBQ_DEBUG
      $IP "$@" 2>&1 | tee -a $CBQ_DEBUG
   } # ip

   ### Logging version of "tc" command
   tc () {
      echo -e "\n# tc $@" >> $CBQ_DEBUG
      $TC "$@" 2>&1 | tee -a $CBQ_DEBUG
   } # tc
else
   ### Default wrappers
   
   ip () {
      $IP "$@"
   } # ip
   
   tc () {
      $TC "$@"
   } # tc
fi # ip/tc wrappers


case "$1" in

#############################################################################
############################### START/COMPILE ###############################
#############################################################################

start|compile)

### Probe QoS modules (start only)
for module in $CBQ_PROBE; do
   $MP $module || cbq_failure "failed to load module $module"
done

### If we are in compile/nocache/logging mode, don't bother with cache
if [ "$1" != "compile" -a "$2" != "nocache" -a -z "$CBQ_DEBUG" ]; then
   VALID=1

   ### validate the cache
   [ "$2" = "invalidate" -o ! -f $CBQ_CACHE ] && VALID=0
   if [ $VALID -eq 1 ]; then
      [ `find $CBQ_PATH -maxdepth 1 -newer $CBQ_CACHE| \
        wc -l` -gt 0 ] && VALID=0
   fi

   ### compile the config if the cache is invalid
   if [ $VALID -ne 1 ]; then
      $0 compile > $CBQ_CACHE ||
         cbq_fail_off "failed to compile CBQ configuration!"
   fi

   ### run the cached commands
   exec /bin/sh $CBQ_CACHE 2> /dev/null
fi

### Load DEVICES, DEVFIELDS and CLASSLIST
cbq_init $CBQ_PATH


### Setup root qdisc on all configured devices
for dev in $DEVICES; do
   ### Retrieve device bandwidth and, optionally, weight
   DEVTEMP=`echo "$DEVFIELDS"| sed -n "/^$dev,/ { s/$dev,//; p; q; }"`
   DEVBWDT=${DEVTEMP%%,*};   DEVWGHT=${DEVTEMP##*,}
   [ "$DEVBWDT" = "$DEVWGHT" ] && DEVWGHT=""

   ### Device bandwidth is required
   if [ -z "$DEVBWDT" ]; then
      cbq_message "could not determine bandwidth for device $dev!"
      cbq_failure "please set up the DEVICE fields properly!"
   fi

   ### Check if the device is there
   ip link show $dev &> /dev/null ||
      cbq_fail_off "device $dev not found!"

   ### Remove old root qdisc from device
   cbq_device_off $dev


   ### Setup root qdisc + class for device
   tc qdisc add dev $dev root handle 1 cbq \
   bandwidth $DEVBWDT avpkt 1000 cell 8

   ### Set weight of the root class if set
   [ -n "$DEVWGHT" ] &&
      tc class change dev $dev root cbq weight $DEVWGHT allot 1514

   [ "$1" = "compile" ] && echo
done # dev


### Setup traffic classes
for classfile in $CLASSLIST; do
   cbq_load_class $CBQ_PATH $classfile

   ### Create the class
   tc class add dev $DEVICE parent 1:$PARENT classid 1:$CLASS cbq \
   bandwidth $BANDWIDTH rate $RATE weight $WEIGHT prio $PRIO \
   allot 1514 cell 8 maxburst 20 avpkt 1000 $BOUNDED $ISOLATED ||
      cbq_fail_off "failed to add class $CLASS with parent $PARENT on $DEVICE!"

   ### Create leaf qdisc if set
   if [ "$LEAF" = "tbf" ]; then
      tc qdisc add dev $DEVICE parent 1:$CLASS handle $CLASS tbf \
      rate $RATE buffer $BUFFER limit $LIMIT mtu $MTU $PEAK
   elif [ "$LEAF" = "sfq" ]; then
      tc qdisc add dev $DEVICE parent 1:$CLASS handle $CLASS sfq \
      $PERTURB $QUANTUM
   fi


   ### Create fw filter for MARK fields
   for mark in `echo "$CFILE"| sed -n '/^MARK/ { s/.*=//; p; }'`; do
      ### Attach fw filter to root class
      tc filter add dev $DEVICE parent 1:0 protocol ip \
      prio $PRIO_MARK handle $mark fw classid 1:$CLASS
   done ### mark

   ### Create route filter for REALM fields
   for realm in `echo "$CFILE"| sed -n '/^REALM/ { s/.*=//; p; }'`; do
      ### Split realm into source & destination realms
      SREALM=${realm%%,*}; DREALM=${realm##*,}
      [ "$SREALM" = "$DREALM" ] && SREALM=""

      ### Convert asterisks to empty strings
      SREALM=${SREALM#\*}; DREALM=${DREALM#\*}

      ### Attach route filter to the root class
      tc filter add dev $DEVICE parent 1:0 protocol ip \
      prio $PRIO_REALM route ${SREALM:+from $SREALM} \
      ${DREALM:+to $DREALM} classid 1:$CLASS
   done ### realm

   ### Create u32 filter for RULE fields
   for rule in `echo "$CFILE"| sed -n '/^RULE/ { s/.*=//; p; }'`; do
      ### Split rule into source & destination
      SRC=${rule%%,*}; DST=${rule##*,}
      [ "$SRC" = "$rule" ] && SRC=""


      ### Split destination into address, port & mask fields
      DADDR=${DST%%:*}; DTEMP=${DST##*:}
      [ "$DADDR" = "$DST" ] && DTEMP=""

      DPORT=${DTEMP%%/*}; DMASK=${DTEMP##*/}
      [ "$DPORT" = "$DTEMP" ] && DMASK="0xffff"


      ### Split up source (if specified)
      SADDR=""; SPORT=""
      if [ -n "$SRC" ]; then
         SADDR=${SRC%%:*}; STEMP=${SRC##*:}
         [ "$SADDR" = "$SRC" ] && STEMP=""

         SPORT=${STEMP%%/*}; SMASK=${STEMP##*/}
         [ "$SPORT" = "$STEMP" ] && SMASK="0xffff"
      fi


      ### Convert asterisks to empty strings
      SADDR=${SADDR#\*}; DADDR=${DADDR#\*}

      ### Compose u32 filter rules
      u32_s="${SPORT:+match ip sport $SPORT $SMASK}"
      u32_s="${SADDR:+match ip src $SADDR} $u32_s"
      u32_d="${DPORT:+match ip dport $DPORT $DMASK}"
      u32_d="${DADDR:+match ip dst $DADDR} $u32_d"

      ### Uncomment the following if you want to see parsed rules
      #echo "$rule: $u32_s $u32_d"

      ### Attach u32 filter to the appropriate class
      tc filter add dev $DEVICE parent 1:0 protocol ip \
      prio $PRIO_RULE u32 $u32_s $u32_d classid 1:$CLASS
   done ### rule

   [ "$1" = "compile" ] && echo
done ### classfile
;;


#############################################################################
################################# TIME CHECK ################################
#############################################################################

timecheck)

### Get time + weekday
TIME_TMP=`date +%w/%k:%M`
TIME_DOW=${TIME_TMP%%/*}
TIME_NOW=${TIME_TMP##*/}

### Load DEVICES, DEVFIELDS and CLASSLIST
cbq_init $CBQ_PATH

### Run through all classes
for classfile in $CLASSLIST; do
   ### Gather all TIME rules from class config
   TIMESET=`sed -n 's/#.*//; s/[[:space:]]//g; /^TIME/ { s/.*=//; p; }' \
      $CBQ_PATH/$classfile`
   [ -z "$TIMESET" ] && continue

   MATCH=0; CHANGE=0
   for timerule in $TIMESET; do
      TIME_ABS=`cbq_time2abs $TIME_NOW`
      
      ### Split TIME rule to pieces
      TIMESPEC=${timerule%%;*}; PARAMS=${timerule##*;}
      WEEKDAYS=${TIMESPEC%%/*}; INTERVAL=${TIMESPEC##*/}
      BEG_TIME=${INTERVAL%%-*}; END_TIME=${INTERVAL##*-}

      ### Check the day-of-week (if present)
      [ "$WEEKDAYS" != "$INTERVAL" -a \
        -n "${WEEKDAYS##*$TIME_DOW*}" ] && continue

      ### Compute interval boundaries
      BEG_ABS=`cbq_time2abs $BEG_TIME`
      END_ABS=`cbq_time2abs $END_TIME`

      ### Midnight wrap fixup
      if [ $BEG_ABS -gt $END_ABS ]; then
         [ $TIME_ABS -le $END_ABS ] &&
            TIME_ABS=$[TIME_ABS + 24*60]

         END_ABS=$[END_ABS + 24*60]
      fi

      ### If the time matches, remember params and set MATCH flag
      if [ $TIME_ABS -ge $BEG_ABS -a $TIME_ABS -lt $END_ABS ]; then
         TMP_RATE=${PARAMS%%/*}; PARAMS=${PARAMS#*/}
         TMP_WGHT=${PARAMS%%/*}; TMP_PEAK=${PARAMS##*/}

         [ "$TMP_PEAK" = "$TMP_WGHT" ] && TMP_PEAK=""
         TMP_PEAK=${TMP_PEAK:+peakrate $TMP_PEAK}

         MATCH=1
      fi
   done ### timerule


   cbq_load_class $CBQ_PATH $classfile

   ### Get current RATE of CBQ class
   RATE_NOW=`tc class show dev $DEVICE| sed -n \
       "/cbq 1:$CLASS / { s/.*rate //; s/ .*//; p; q; }"`
   [ -z "$RATE_NOW" ] && continue

   ### Time interval matched
   if [ $MATCH -ne 0 ]; then

      ### Check if there is any change in class RATE
      if [ "$RATE_NOW" != "$TMP_RATE" ]; then
         NEW_RATE="$TMP_RATE"
         NEW_WGHT="$TMP_WGHT"
         NEW_PEAK="$TMP_PEAK"
         CHANGE=1
      fi

   ### Match not found, reset to default RATE if necessary
   elif [ "$RATE_NOW" != "$RATE" ]; then
      NEW_WGHT="$WEIGHT"
      NEW_RATE="$RATE"
      NEW_PEAK="$PEAK"
      CHANGE=1
   fi

   ### If there are no changes, go for next class
   [ $CHANGE -eq 0 ] && continue

   ### Replace CBQ class
   tc class replace dev $DEVICE classid 1:$CLASS cbq \
   bandwidth $BANDWIDTH rate $NEW_RATE weight $NEW_WGHT prio $PRIO \
   allot 1514 cell 8 maxburst 20 avpkt 1000 $BOUNDED $ISOLATED

   ### Replace leaf qdisc (if any)
   if [ "$LEAF" = "tbf" ]; then
      tc qdisc replace dev $DEVICE handle $CLASS tbf \
      rate $NEW_RATE buffer $BUFFER limit $LIMIT mtu $MTU $NEW_PEAK
   fi

   cbq_message "$TIME_NOW: class $CLASS on $DEVICE changed rate ($RATE_NOW -> $NEW_RATE)"
done ### class file
;;


#############################################################################
################################## THE REST #################################
#############################################################################

stop)
   cbq_off
;;

list)
   cbq_show
;;

stats)
   cbq_show -s
;;

restart)
   shift
   $0 stop
   $0 start "$@"
;;

*)
   echo "Usage: `basename $0` {start|compile|stop|restart|timecheck|list|stats}"
esac
Активен

BMW - MPowering The Generation

Unseen

  • Напреднали
  • *****
  • Публикации: 16
    • Профил
Traffic Shaper
« Отговор #6 -: Jul 20, 2004, 14:42 »
Какво съобщение ти изписва?
Трябва да компилираш ядро с потдръжка на cbq,данеби да си пропуснал този момент?
Самият файл (cbq) е и хелп разгледай го добре.Във него пише какво да съдържа конф-файла и в коя директория да го поставиш.
Ако има нещо питай,но първо се опитай сам да се справиш все ще научиш нещо ново'<img'>
Пздрави..
Активен

  • Гост
Traffic Shaper
« Отговор #7 -: Jul 20, 2004, 15:49 »
точно този хелп разгледах и по него се ориентирвам

кънъла поддържа cbq и htb.

там пише да се сложи в

/var/cache/cbq.my_first_try

и след това да се стартира със
         cbq.my_first_try start
и други опции за стартирване без кеширане и т.н.
Активен

Unseen

  • Напреднали
  • *****
  • Публикации: 16
    • Профил
Traffic Shaper
« Отговор #8 -: Jul 20, 2004, 20:54 »
изтегли го от тук - http://sourceforge.net/project/showfiles.php?group_id=42529
но изтегли версия 0.7.2 и опитай с него.
Активен

  • Гост
Traffic Shaper
« Отговор #9 -: Jul 20, 2004, 21:18 »
ето за какво става въпрос

направих си собствено cbq

Примерен код

#MY cbq.init

DECICE=eth0:1,100Mbps,10Mbps
RATE=128Kbps
WEIGHT=200Kbps
PRIO=5
RULE=192.168.0.2


сега ако може едно обяснение как да го пусна.
стъпка по стъпка ако е възможно.
Активен

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Traffic Shaper
« Отговор #10 -: Jul 21, 2004, 08:54 »
Понеже със CBQ може да се контролира само скоростта на ъплоуд ти трябват две правила за всеки хост, като всяко от тях се 'закача' за една от лан картите на шлюза.
Няма да е зле да намалиш скоростта (128кпбс) , защото ако интернета ти е слаб, това ограничение въобще няма да се усети и пак ще изяждаш целия канал.
Ето ти двата примерни файла с правила:
cbq-100:
Примерен код

DEVICE=eth1,10Mbit,1Mbit
RATE=40Kbit
WEIGHT=4Kbit
PRIO=5
RULE=10.10.10.2

cbq-101:
Примерен код

DEVICE=eth0,10Mbit,1Mbit
RATE=40Kbit
WEIGHT=4Kbit
PRIO=5
RULE=10.10.10.2,

Имената на файловете са случайно избрани (макар че е хубаво да има някаква идеология в имената им '<img'> ) При мен eth0 е външния интерфейс (към доставчика), а eth1 - към домашната мрежичка. Горното реже около скоростти 4KB/s. Гледай по принцип RATE=10xWEIGHT.
Като си направиш файловете с правилата (забележи запетаята на края на втория, да не кажеш че са били еднакви '<img'> ) ги бухаш в /etc/sysconfig/cbq (ако не си указал друга папка в скрипта) и правиш
cbq.init compile
cbq.init start
cbq.init list
Ако последното ти изкара редове с правила значи е добре.
Дерзай '<img'>
Активен

  • Гост
Traffic Shaper
« Отговор #11 -: Jul 21, 2004, 10:19 »
Ivanatore a ako startirash skripta (cbq.init start) bez kompilaciq (cbq.init compile)??? Kakva e razlikata shte mi obiasnish li???
Izviniavam se za latinicata.
Активен

mozly

  • Напреднали
  • *****
  • Публикации: 127
    • Профил
Traffic Shaper
« Отговор #12 -: Jul 21, 2004, 15:33 »
Цитат (ivanatora @ Юли 21 2004,11:54)
ги бухаш в /etc/sysconfig/cbq (ако не си указал друга папка в скрипта) и правиш
cbq.init compile
cbq.init start
cbq.init list
Ако последното ти изкара редове с правила значи е добре.
Дерзай '<img'>

зa какъв скрипт става въпрос нещо хич ме няма
Активен

BMW - MPowering The Generation

  • Гост
Traffic Shaper
« Отговор #13 -: Jul 21, 2004, 22:06 »
за кой скрипт говорим тук според теб?
познай от три пъти
        1.cbq.init
        2.cbq.init
 или  3.cbq.init
Ха сега да видим дали ще познаеш...
Активен

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Traffic Shaper
« Отговор #14 -: Jul 22, 2004, 09:11 »
Незнаен: мисля че compile чете конфигурациите, от тези конфигурации си прави tc командите и ги кешира някъде. После със всеки следващ start ги изпълнява. А инак ако нямаш compile при всеки start конфигурациите се обръщат наново в tc. Мисля че се ускорява старта, не знам точно. Не съм го пробвал до сега без compile.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Traffic Routing, Shaper
Настройка на програми
zax 10 3656 Последна публикация Jul 04, 2005, 09:10
от zax
Traffic shaper
Настройка на програми
nikomsj 20 6360 Последна публикация Jul 20, 2006, 22:02
от
Cbq traffic shaper
Настройка на програми
Sublimate 2 2385 Последна публикация Mar 29, 2007, 15:42
от alex_c
Traffic shaper ubuntu 6.06
Настройка на програми
littlefox 3 2499 Последна публикация Apr 18, 2008, 22:18
от littlefox
Traffic Shaper
Сървъри
koko92_national 8 4174 Последна публикация Feb 04, 2013, 20:05
от Mitaka