همانطور که می دانید لاگ های استریسک در فایل full ذخیره میشوند که گاها این فایل بسیار سنگین شده و باز کردن آن بسیار از سیستم ریسورس میگیرد و باعث اختلال در سیستم میشود.
اگر بخواهیم لاگ فایلهای سرویس استریسک (فایل های full و message و master.csv و ..) را بر اساس هر روز (بصورت روزانه در فایل های جداگانه و نه در یک فایل) ذخیره کنیم (مثلا : Master.csv-20210505.gz Master.csv-20210507.gz ) و همچنین فایلها را زیپ کرده که فضای کمتری اشغال کند و همچنین در پوشه ی لاگها، همه لاگ فایل های مربوط به 25 روز قبل را پاک کنیم و فقط 25 روز آخر را نگه داریم ( آن هم بصورت فشرده که فضای کمی اشغال کنه)، از سرویس logrotate استفاده میکنیم :
برای فشرده سازی و ذخیره روزانه در فایل مجزا و همچنین نگه داشتن لاگهای 25 روز آخر، کافیه که از سرویس logrotate استفاده کنید
در صورتی که این سرویس رو سرورتان نصب نبود ابتدا آن را نصب کنید :
و برای استریسک فایل کانفیگ زیر رو ایجاد کنید :
و محتویات زیر را در آن قرار دهید :
همچنین اگر فقط بخواهید فایلهای مربوط به 25 روز قبل را پاک کنید می توانید تنها از کرون استفاده کنید. شما باید به ازای هر سرویسی که دارید یه خط در cronjob تعریف کنید.
مثلا برای لاگ های سرویس استریسک، ابتدا کامند زیر را اجرا کنید :
و سپس خط های زیر را در پایان فایل اضافه کنید:
اگر بخواهیم لاگ فایلهای سرویس استریسک (فایل های full و message و master.csv و ..) را بر اساس هر روز (بصورت روزانه در فایل های جداگانه و نه در یک فایل) ذخیره کنیم (مثلا : Master.csv-20210505.gz Master.csv-20210507.gz ) و همچنین فایلها را زیپ کرده که فضای کمتری اشغال کند و همچنین در پوشه ی لاگها، همه لاگ فایل های مربوط به 25 روز قبل را پاک کنیم و فقط 25 روز آخر را نگه داریم ( آن هم بصورت فشرده که فضای کمی اشغال کنه)، از سرویس logrotate استفاده میکنیم :
برای فشرده سازی و ذخیره روزانه در فایل مجزا و همچنین نگه داشتن لاگهای 25 روز آخر، کافیه که از سرویس logrotate استفاده کنید
در صورتی که این سرویس رو سرورتان نصب نبود ابتدا آن را نصب کنید :
کد:
# yum install logrotate
و برای استریسک فایل کانفیگ زیر رو ایجاد کنید :
کد:
# vim /etc/logrotate.d/asterisk
و محتویات زیر را در آن قرار دهید :
کد:
/var/log/asterisk/queue_log { su root root weekly missingok rotate 10 notifempty sharedscripts create 0644 } /var/log/asterisk/messages /var/log/asterisk/event_log /var/log/asterisk/full /var/log/asterisk/cdr-csv/Master.csv{ su root root daily missingok rotate 25 compress notifempty delaycompress sharedscripts create 0644 postrotate /usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null ## systemctl restart asterisk endscript }
همچنین اگر فقط بخواهید فایلهای مربوط به 25 روز قبل را پاک کنید می توانید تنها از کرون استفاده کنید. شما باید به ازای هر سرویسی که دارید یه خط در cronjob تعریف کنید.
مثلا برای لاگ های سرویس استریسک، ابتدا کامند زیر را اجرا کنید :
کد:
crontab -e
و سپس خط های زیر را در پایان فایل اضافه کنید:
کد:
@daily find /var/log/asterisk/ -type f -mtime +25 | xargs rm -f