# مانیتورینگ هوشمند هارد، حذف خودکار ویس ها به همراه هشدار صوتی

**URL:** <https://forum.mysup.ir/t/topic/537>\
**Category:** استریسک\
**Tags:** asterisk, سیموتل\
**Created:** [اوت 3، 2026، 5:46ق.ظ UTC](https://forum.mysup.ir/t/topic/537 "2026-08-03T05:46:50Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![shayan](https://forum.mysup.ir/letter_avatar_proxy/v4/letter/s/bcef8e/32.png) [@shayan](https://forum.mysup.ir/u/shayan)\
**Post date:** [اوت 3، 2026، 5:46ق.ظ UTC](https://forum.mysup.ir/t/topic/537/1 "2026-08-03T05:46:50Z")

</div>

_**بسیار مهم (اخطار)**_

برای استفاده از این bash حتما نیاز هست monitor\_converted در پارتیشن مجزایی ماونت شده باشد در غیر این صورت اگر روی پارتیشن روت اعمال کنید به مرور زمان که لاگ ها و بک اپ فضا را اشغال میکنند این bash از ویس ها پاک میکند نسبت به درصد و بعد چند سال مشاهده میکنید که 60 درصد فقط لاگ و بک آپ …. هست.(اصول پارتیشن بندی)

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

به همین خاطر این اسکریپت Bash را نوشتم و شاید برای دوستان دیگر هم مفید باشد.

bash

> **[GitHub - Alishayan3833/VoIP-Disk-Monitor: A Bash script for Asterisk/Simotel...](https://github.com/Alishayan3833/VoIP-Disk-Monitor/tree/main)**
>
> main

**قابلیت‌ها**

- مانیتورینگ میزان استفاده از فضای دیسک

- تماس خودکار با یک داخلی در صورت عبور از آستانه مشخص (Warning)

- پخش فایل صوتی هشدار

- جلوگیری از ارسال هشدارهای تکراری تا زمانی که وضعیت دیسک عادی نشود

- حذف خودکار قدیمی‌ترین پوشه‌های ضبط مکالمه

- ادامه حذف تا رسیدن به درصد فضای موردنظر

- ثبت کامل عملیات در فایل Log

- قابلیت اجرا از طریق Cron

* * *

## نحوه عملکرد

به عنوان مثال:

- اگر فضای دیسک به **70٪** برسد:

- اگر فضای دیسک به **75٪** برسد:

* * *

## ساختار پوشه‌ها

اسکریپت برای ساختاری مانند زیر طراحی شده است:

```bash
/var/spool/asterisk/monitor_converted/

├── 20260720/
├── 20260721/
├── 20260722/
├── 20260723/

```

هر پوشه مربوط به ضبط‌ های یک روز است.

در زمان پاکسازی، **کل قدیمی‌ترین پوشه** حذف می‌شود و پوشه‌های خالی باقی نمی‌مانند.

* * *

## تنظیمات قابل تغییر

کافی است مقادیر زیر را داخل اسکریپت تغییر دهید:

```auto
PARTITION="/var/spool/asterisk/monitor_converted"

RECORD_PATH="/var/spool/asterisk/monitor_converted"

WARNING_LEVEL=70

DELETE_LEVEL=75

TARGET_LEVEL=60

EXTENSION="202"

SOUND="pr/warningsounds"

```

* * *

## اجرای دوره‌ای با Cron

برای اجرای خودکار هر دو ساعت:

```auto
0 */2 * * * /usr/local/bin/disk_monitor.sh

```

* * *

## لاگ

تمام عملیات در فایل زیر ثبت می‌شود:

```auto
/tmp/disk_monitor.log

```

شامل:

- میزان استفاده از هارد

- زمان ارسال هشدار

- مسیر پوشه حذف‌شده

- نتیجه حذف

- درصد فضای دیسک بعد از هر عملیات

* * *

در صورت استفاده از سیموتل طبق عکس سناریو مورد نظر پیاده سازی کنید و یک کانتکست اختصاص دهید.

سپس کانتکست در کد جایگزین sound-alert  
/usr/sbin/asterisk -rx "channel originate Local/${EXTENSION}@sound-alert application Playback ${SOUND}  
کنید در این صورت تماس با داخلی برقرار میشود و در کارکتور به شما این قابلیت را میدهد که caller ID عوض کنید برای مثال Disk-Alert

 ![image](https://forum.mysup.ir/uploads/default/original/2X/e/e999f9081840c9833600b312a45a0fb4f86bc75a.png)

در صورتی که سیموتل ندارید این دایل پلن در استریسک و سرویس ویپ پیاده سازی نمایید.
