ایزابل (Issabel)

حذف فایل‌های ضبط مکالمات قدیمی برای مدیریت فضای هارد دیسک در سیستم‌های تلفنی ایزابل (Issabel) و فری پی بی اکس (FreePBX)

در سیستم‌های تلفنی تحت ویپ مانند ایزابل (Issabel)، الستیکس (Elastix) و فری پی بی اکس (FreePBX)، یکی از مشکلات رایج، افزایش تدریجی حجم داده‌های ذخیره‌شده به ویژه فایل‌های ضبط مکالمات است. با گذشت زمان، این فایل‌ها می‌توانند به سرعت فضای هارد دیسک سرور را پر کنند، که منجر به توقف سرویس‌های تلفنی و حتی خرابی سیستم می‌شود.

برای جلوگیری از این مشکل و بهینه‌سازی استفاده از فضای ذخیره‌سازی، می‌توانیم از اسکریپت‌های خودکار برای حذف فایل‌های ضبط مکالمات قدیمی استفاده کنیم. در این مقاله، نحوه تنظیم یک اسکریپت برای حذف خودکار فایل‌های ضبط شده مکالمات مربوط به ۳۰ روز گذشته را توضیح خواهیم داد. این اسکریپت به طور خودکار هر شب اجرا می‌شود و فایل‌های قدیمی را پاک می‌کند.

دستورالعمل اجرای اسکریپت حذف فایل‌های قدیمی

  1. ایجاد اسکریپت حذف فایل‌هاابتدا متن زیر را در یک فایل متنی با نام removeOldRecordings.sh ذخیره کنید:

    #!/bin/bash

    # Remove Recordings after 30 Days
    # Change this path to reflect your recording storage location
    RECORDINGS=/var/spool/asterisk/monitor/
    # Change this number to reflect the maximum age of call recordings
    RECORDINGEXPIRY=30
    # Delete recordings older than $RECORDINGEXPIRY days
    find $RECORDINGS -mtime +$RECORDINGEXPIRY -exec rm {} \;

    در این اسکریپت:

    • مسیر ذخیره‌سازی فایل‌های ضبط شده مکالمات (/var/spool/asterisk/monitor/) باید با مسیر واقعی در سرور شما جایگزین شود.
    • متغیر RECORDINGEXPIRY برای تعیین مدت زمان نگهداری فایل‌های ضبط شده است. در اینجا ۳۰ روز انتخاب شده است، اما می‌توانید این عدد را به هر تعداد روز دلخواه تغییر دهید.
  2. انتقال اسکریپت به سرور و تنظیم مجوزهافایل removeOldRecordings.sh را به مسیر /usr/src/ منتقل کنید و به آن مجوز اجرای ۷۷۷ بدهید تا بتوانید آن را به راحتی اجرا کنید:
    mv removeOldRecordings.sh /usr/src/
    chmod 777 /usr/src/removeOldRecordings.sh
  3. تنظیم Cron Job برای اجرای خودکار اسکریپتبرای اجرای مداوم این اسکریپت هر شب، باید یک Cron job تنظیم کنید. به این منظور، دستور زیر را در کنسول لینوکس وارد کنید:
    crontab -e

    سپس، دکمه i را فشار دهید تا وارد حالت ویرایش شوید. در یک خط جدید، متن زیر را وارد کنید:

    ۱ ۰ * * * /usr/src/removeOldRecordings.sh

    این دستور باعث می‌شود که اسکریپت هر شب ساعت ۱۲:۰۱ بامداد اجرا شود. پس از وارد کردن این خط، برای خروج از ویرایشگر Esc را فشار دهید و سپس :wq را بزنید تا تغییرات ذخیره شود و از محیط ویرایشگر خارج شوید.

نکات حرفه‌ای برای بهبود مدیریت فایل‌ها

  1. حذف خودکار لاگ‌ها و فایل‌های صندوق صوتیعلاوه بر حذف فایل‌های ضبط مکالمات، می‌توانید اسکریپت را طوری تنظیم کنید که فایل‌های لاگ یا فایل‌های صندوق صوتی را نیز حذف کند. برای این کار، کافی است مسیر ذخیره‌سازی مربوط به این فایل‌ها را در متغیر RECORDINGS جایگزین کنید.به عنوان مثال، برای حذف فایل‌های لاگ، مسیر لاگ‌ها را مانند زیر وارد کنید:
    LOGS=/var/log/asterisk/
  2. آزمایش اسکریپت قبل از تنظیم Cronتوصیه می‌شود قبل از تنظیم Cron job، اسکریپت را به صورت دستی اجرا کنید تا از کارکرد صحیح آن مطمئن شوید. برای این کار، دستور زیر را وارد کنید:
    bash
    /usr/src/removeOldRecordings.sh
  3. استفاده از ذخیره‌سازی ابری یا NASبرای جلوگیری از پر شدن سریع فضای ذخیره‌سازی، می‌توانید فایل‌های ضبط مکالمات را به جای نگهداری در هارد دیسک سرور، به ذخیره‌سازی ابری (مثل AWS S3) یا دستگاه NAS (Network Attached Storage) منتقل کنید. این کار به شما کمک می‌کند که به صورت متمرکز و با امنیت بیشتری فایل‌ها را ذخیره کنید.
  4. پیکربندی محدودیت‌های فضابرای جلوگیری از پر شدن غیرمنتظره فضای دیسک، می‌توانید از ابزارهایی مانند du یا df برای نظارت بر استفاده از فضای دیسک استفاده کنید. به این ترتیب می‌توانید به سرعت از پر شدن دیسک جلوگیری کرده و هشدارهای لازم را دریافت کنید.

با رعایت این نکات و استفاده از اسکریپت‌های خودکار، می‌توانید از پر شدن غیرضروری فضای دیسک جلوگیری کرده و سیستم تلفنی خود را به صورت کارآمدتری مدیریت کنید.

نتیجه‌گیری

این روش ساده و کارآمد می‌تواند به کاهش خطرات ناشی از پر شدن فضای دیسک در سیستم‌های تلفنی ویپ کمک کند. با استفاده از اسکریپت‌ها و ابزارهای Cron، مدیریت فایل‌های ضبط شده بسیار ساده و خودکار خواهد شد.


ویپ ایران | VOIPIRAN، بزرگ‌ترین مرجع تخصصی ویپ و ارتباطات تلفنی فارسی زبان.

حامد کوه فلاح

متخصص، برنامه نویس و مدرس Asterisk و راهکارهای نوین ارتباطی آشنایی و کار با استریسک و راهکار های مشابه از سال 1382، پایه گذاری VOIPIRAN ارائه راهکار های کدباز VOIP همچون VAAK و VOIZ و CONNEXO همکار برنامه نویسی و آموزش با پروژه های Elastix و Issabel با بیش از 3000 دانشجو از سال 1387

View Comments

  • بسیار ممنون
    اگر مستقیم بدون فایل فقط با این دستور

    0 0 * * * find /var/spool/asterisk/monitor/ -name "*.gsm" -mtime +90 -delete >/dev/null 2>&1
    انجام بشه چه فرقی داره؟؟

    • امکان پذیر است، درواقع قراردادن در فایل و اجرای فایل در CronTab کمی نظم داده است و تغییر پارامتر ها راحت تر خواهد بود ولی در عمل تفاوتی ندارد.

Share
Published by
حامد کوه فلاح

Recent Posts

۱۰ محصول برتر Open Source SaaS برای متخصصین VoIP و IT: انتخابی هوشمندانه برای کسب‌وکارها

Open Source Software نقش مهمی در توسعه نرم‌افزارهای SaaS (نرم‌افزار به عنوان سرویس) داشته است.…

1 روز ago

SaaS چیست؟ بررسی جامع، مزایا

SaaS چیست؟ بررسی جامع نرم‌افزار به‌عنوان سرویس و مزایای آن در دنیای فناوری اطلاعات، مدل‌های…

6 روز ago

Softswitch چیست؟ ستون اصلی شبکه‌های VoIP و نحوه طبقه‌بندی آن‌ها

در دنیای ارتباطات راه دور و شبکه‌های VoIP، اصطلاح Softswitch یکی از مفاهیم کلیدی است. Softswitch یک سیستم نرم‌افزاری…

1 هفته ago

مدیریت Asterisk از طریق کنسول مثل یک حرفه ای: ابزارها و نکات

Asterisk به‌عنوان یکی از محبوب‌ترین پلتفرم‌های تلفن تحت شبکه (VoIP)، ابزارهای قدرتمند و متنوعی را…

2 هفته ago

آشنایی با مفاهیم FXS و FXO در سیستم‌های VoIP

در سیستم‌های تلفنی سنتی و مدرن، مفاهیمی مانند FXS و FXO نقشی کلیدی در ارتباطات آنالوگ و دیجیتال ایفا…

2 هفته ago

Devv.ai: موتور جستجوی هوشمند برای توسعه‌دهندگان و متخصصان IT

در دنیای پیچیده فناوری اطلاعات و برنامه‌نویسی، یافتن سریع اطلاعات دقیق و ابزارهای موردنیاز از…

2 هفته ago