اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

مشکل در نوشتن shell script در linux برای مانیتور کردن داخلی های asterisk

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    مشکل در نوشتن shell script در linux برای مانیتور کردن داخلی های asterisk

    من میخوام وضعیت یکی از یوزرهای voip داخل سرورم (100) رو مانیتور کنم برای همین از دستور asterisk -rx 'sip show peer 100' استفاده میکنم. که یک خروجی شبیه زیر میده :
    کد PHP:
     Status       OK (5 ms)
      
    Useragent    Grandstream GXP2160 1.0.4.23
      Reg
    Contact sip:100@192.168.1.110:5060
      Qualify Freq 
    60000 ms
      Keepalive    
    0 ms
      Sess
    -Timers  Accept
      Sess
    -Refresh uas
      Sess
    -Expires 1800 secs
      Min
    -Sess     90 secs
      RTP Engine   
    asterisk 
    با کمک grep و دستور awk تونستم فقط خط Status رو که وضعیتش OK زده رو به عنوان خروجی بکشم بیرون :
    کد PHP:
    [root@asterisk11 ~]# asterisk -rx 'sip show peer 100' | grep --text -i Status | awk '{print $3}'
    OK 
    بعد از این من اومدم یک شل اسکریپت نوشتم که اگر خروجی دستور asterisk -rx 'sip show peer 100' | grep --text -i Status | awk '{print $3}' برابر با OK بود عدد 1 رو چاپ کنه در غیر اینصورت عدد 0 را نمایش بدهد که این عدد رو میخوام بدم به یک نرم افزار مانیتورینگ.
    shell script که زدم به صورت زیر هستش :
    کد PHP:
    #!/bin/bash
    "asterisk -rx 'sip show peer 100' | grep --text -i Status | awk '{print $3}'" status
    if [ "$status== "OK" ]
    then
    echo 1
    elseif
    echo 
    0
    exit 
    توی خط اول اون کامند asterisk -rx رو زدم که بعدش ریختم توی متغییر status سپس در خط دوم هم تعریف کردم اگر متغییر status برابر با OK بود در خط بعد گفتم با کامند echo عدد 1 رو نمایش بده و در غیر اینصورت عدد 0 را نمایش بدهد. ولی وقتی اسکریپت رو اجرا میکنم با پیغام خطاهای زیر مواجه میشم :
    کد PHP:
    [root@asterisk11 ~]# ./EXT-100.sh
    ./EXT-800.shline 2asterisk -rx 'sip show peer 100' grep --text -i Status awk '{print }'command not found
    ./EXT-100.shline 9syntax errorunexpected end of file 
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-09-2021, 10:13 AM.

    من قلبی بزرگ با رویاهایی بزرگ دارم. دانسته هایمان را با هم به اشتراک بگذاریم.

    #2
    سلام این مورد رو اتفاقا خودمم درگیرش بودم قبلا ولی وقت نکرده بودم تکمیلش کنم. دستور مربوط به استریسک رو باید توی تک کوتیشن بذارید و شرط elsif هم که گذاشتید درست نیستش. شکل صحیحی که باید کد بزنید به صورت زیر هستش :
    کد PHP:
    #!/bin/bash
    status=`asterisk -rx 'sip show peer 100' | grep --text -i Status | awk '{print $3}'`
    if [ 
    $status OK ]
    then
    echo "1"
    else
    echo 
    "0"
    fi 

    کامنت

    درباره انجمن منطقه لینوکسی ها

    انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

    شبکه های اجتماعی
    در حال انجام ...
    X