حذف مکالمات ضبط شده ی قدیمی به صورت خودکار

  • در سیستم های تلفنی همچون سیموتل Simotel، الستیکس Elastix و سرورهایی که برپایه استریسک هستند، حجم اشغال شده هارد دیسک به تدریج افزایش یافته تا بظرفیت به پایان برسد و البته پس از آن متوقف شدن سرویس تلفنی رخ خواهد داد.
    با اسکریپت زیر می توان فایل های ضبط شده مکالمات مربوطه به 30 روز گذشته به قبل را هر روز حذف کرد.
    البته که با تغییر مسیر میتوانید فایل لاگ ها، یا صندوق صوتی و یا فایل های دیگر را هدف قرار داد و با تغییر عددRECORDINGEXPIRY در اسکریپت مدت روز را مشخص کرد.
  1. در ابتدا متن زیر را داخل فایلی به نام removeOldRecordings.sh قرار دهید.
#!/bin/bash


#Remove Recordings after 30 Days

# Change this path to reflect your recording storage
# location
RECORDINGS=/var/spool/asterisk/monitor_converted/

# Change this number to reflect the maximum age of call
# recordings
RECORDINGEXPIRY=30


# Delete recordings older than $EXPIRY days
find $RECORDINGS -mtime +$RECORDINGEXPIRY -exec delete {} \;
  1. فایل removeOldRecordings.sh را به مسیر /usr/src/ منتقل کرده و مجوز اجرای 777 بدهید.

  2. برای اجرای مداوم در هر روز می بایست یک Crontab بر روی لینوکس بسازیم، cron زیر هر شب اجرا می شود. برای ساخت Cron

  • بر روی کنسول لینوکس دستور زیر را بزنید
crontab -e
  • دکمه i را بزنید تا بتوانید ویرایش کنید
  • به یک خط جدید رفته و متن زیر را قرار دهید
1 0 * * * /usr/src/removeOldRecordings.sh

** ممکن است در برخی مواقع متن بالا به درستی نمایش داده نشده باشد، فقط کپی پیست کنید **

  • برای خروج از Croptab یک esc زده، سپس wq: را بزنید و خارج بشوید.
2 Likes