انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: traffic controller(حل شد)  (دفعات بازدید: 1655 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین defy

  • Jr. Member
  • *
  • ارسال: 78
  • keep moving forward
traffic controller(حل شد)
« : 07 شهریور 1389، 01:14 ب‌ظ »
سلام
#!/bin/sh
#
# Simple init.d shell script that can to modified to fit your favorite distro
#
# All Rates are in Kbits, so in order to gets Bytes divide by 8
# e.g. 25Kbps == 3.125KB/s
#
# TC=/sbin/tc
# DNLD=64Kbit   # DOWNLOAD Limit
# DWEIGHT=6Kbit # DOWNLOAD Weight Factor ~ 1/10 of DOWNLOAD Limit
# UPLD=64KBit    # UPLOAD Limit
# UWEIGHT=6Kbit  # UPLOAD Weight Factor
# Filter id = {queue id Ex: 11,10} + {2 digits of the end of the ip address}
TC=/sbin/tc
Unit=KBit
Multiply=1
#Variable declaration -->
let DWN_RATE[3]=128*$Multiply
let UPL_RATE[3]=128*$Multiply
#<-- Variable declaration
tc_start()
{
#Download Queue -->
$TC qdisc add dev eth2 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
$TC class add dev eth2 parent 11:0 classid 11:3 cbq rate ${DWN_RATE[3]}$Unit weight $((${DWN_RATE[3]}/10))$Unit allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth2 parent 11:0 protocol ip handle 113 fw flowid 11:3
#<-- Download Queue
#Upload Queue -->
$TC qdisc add dev eth0 root handle 10: cbq bandwidth 100Mbit avpkt 1000 mpu 64
$TC class add dev eth0 parent 10:0 classid 10:3 cbq rate ${UPL_RATE[3]}$Unit weight $((${UPL_RATE[3]}/10))$Unit allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth0 parent 10:0 protocol ip handle 103 fw flowid 10:3
   }
tc_stop()
{
$TC qdisc del dev eth2 root
$TC qdisc del dev eth0 root
}
tc_restart()
{
tc_stop
sleep 1
tc_start
}
tc_show()
{
echo ""
echo "eth2:"
$TC qdisc show dev eth2
$TC class show dev eth2
$TC filter show dev eth2
echo ""
echo "eth0:"
$TC qdisc show dev eth0
$TC class show dev eth0
$TC filter show dev eth0
echo ""
}
case "$1" in
start)
echo -n "Starting bandwidth shaping: "
tc_start
echo "done"
;;
  stop)
echo -n "Stopping bandwidth shaping: "
  tc_stop
  echo "done"
  ;;
restart)
echo -n "Restarting bandwidth shaping: "
tc_restart
echo "done"
  ;;
show)
tc_show
  ;;
*)
echo "Usage: /etc/init.d/tc.sh {start|stop|restart|show}"
  ;;
esac
exit 0
من این برنامه رو برای مدیریت پهنای باند userهام نوشتم البته من در slackware12.1 از این برنامه استفاده می کردم و درست اجرا می شد ولی تصمیم گرفتم سرور رو عوض کنم و ubuntu server نصب کردم ولی یه سری error میده :


")syntax error: invalid arithmetic operator (error token is "
")syntax error: invalid arithmetic operator (error token is "
'etc/webmin/init/tc.sh: line 21: syntax error near unexpected token `
'etc/webmin/init/tc.sh: line 21: `tc_start()

که فکر میکنم این error ها به دلیل تفاوت bash تو slackware و ubuntu باشه ولی من نمی دونم چه تفاوتی؟!!!! :'(
ممنون می شم کسی کمکم کنه  ???
« آخرین ویرایش: 08 شهریور 1389، 03:32 ب‌ظ توسط defy »
The quieter you become , The more you are able to hear

آفلاین mani.zaeim

  • Sr. Member
  • *
  • ارسال: 287
  • جنسیت : پسر
  • Free as in Freedom
پاسخ به: traffic controller
« پاسخ #1 : 07 شهریور 1389، 04:46 ب‌ظ »
script که نوشتی رو با bash -x <scriptName> اهجرا کن و debug کن
1- man چیزه خوبیه
۲- google کنید
۳- خوب بخوانید

"If Windows API becomes the default on Linux then what is the point of Linux?" -- Mark Shuttleworth
MONO is Windows API

آفلاین mani.zaeim

  • Sr. Member
  • *
  • ارسال: 287
  • جنسیت : پسر
  • Free as in Freedom
پاسخ به: traffic controller
« پاسخ #2 : 07 شهریور 1389، 04:52 ب‌ظ »
eth2 رو به ethx یا عوض کن یا از input از کاربرت بگیر
1- man چیزه خوبیه
۲- google کنید
۳- خوب بخوانید

"If Windows API becomes the default on Linux then what is the point of Linux?" -- Mark Shuttleworth
MONO is Windows API

آفلاین defy

  • Jr. Member
  • *
  • ارسال: 78
  • keep moving forward
پاسخ به: traffic controller
« پاسخ #3 : 07 شهریور 1389، 09:17 ب‌ظ »
مرسی mani من کامپایلش کردم و Error هاش این شد:
[left]+ TC=$'/sbin/tc\r'
+ Unit=$'KBit\r'
+ Multiply=$'1\r'
' let 'DWN_RATE[3]=128*1
")syntax error: invalid arithmetic operator (error token is "
' $'\r'UPL_RATE[3]=128*1
")syntax error: invalid arithmetic operator (error token is "
'etc/webmin/init/tc.sh: line 21: syntax error near unexpected token `
'etc/webmin/init/tc.sh: line 21: `tc_start()[/left]

ظاهرن به r/ گیر داده راه حلی به نظرت میرسه ؟
مرسی که کمکم می کنی
The quieter you become , The more you are able to hear

آفلاین mani.zaeim

  • Sr. Member
  • *
  • ارسال: 287
  • جنسیت : پسر
  • Free as in Freedom
پاسخ به: traffic controller
« پاسخ #4 : 07 شهریور 1389، 11:44 ب‌ظ »
let DWN_RATE[3]=128*$Multiply
let UPL_RATE[3]=128*$Multiply
عوض کن به:
let DWN_RATE[3]=$((128*$Multiply))
let UPL_RATE[3]=$((128*$Multiply))
run کن دوباره
1- man چیزه خوبیه
۲- google کنید
۳- خوب بخوانید

"If Windows API becomes the default on Linux then what is the point of Linux?" -- Mark Shuttleworth
MONO is Windows API

آفلاین defy

  • Jr. Member
  • *
  • ارسال: 78
  • keep moving forward
پاسخ به: traffic controller
« پاسخ #5 : 08 شهریور 1389، 02:23 ب‌ظ »
مرسی از کمکتون مشکلم حل شد
با دستور
dos2unix  <your script>
فرمت فایل رو عوض کردم
The quieter you become , The more you are able to hear

آفلاین mani.zaeim

  • Sr. Member
  • *
  • ارسال: 287
  • جنسیت : پسر
  • Free as in Freedom
پاسخ به: traffic controller
« پاسخ #6 : 08 شهریور 1389، 02:36 ب‌ظ »
لطفا يه حل شد به عنوان تاپيكتون اضافه كنيد
1- man چیزه خوبیه
۲- google کنید
۳- خوب بخوانید

"If Windows API becomes the default on Linux then what is the point of Linux?" -- Mark Shuttleworth
MONO is Windows API