หน้า 1 จากทั้งหมด 1

ทำ Rotate ไฟล์ Log ของ Asterisk ด้วยคำสั่ง log rotate

โพสต์โพสต์แล้ว: 22 ก.พ. 2011 09:20
โดย nuiz
มีทริกเล็กๆของ Asterisk มาฝากครับ เกี่ยวกับไฟล์ Log ในโฟลเดอร์ /var/log/asterisk

วันนี้ผมลองเข้าไปดูที่เครื่อง Asterisk ตัวที่เป็น Call Center พบว่าไฟล์ Log ในโฟลเดอร์ /var/log/asterisk ที่ชื่อ full มีขนาดใหญ่โตมากมาย

โค้ด: เลือกทั้งหมด
ls -la /var/log/asterisk

-rw-r--r-- 1 asterisk asterisk 6531748782 Feb 22 09:12 full
ขนาดประมาณ 6 กิ๊ก

จะลบทิ้งเลยก็กระไรอยู่เพราะ Asterisk กำลังทำงานอยู่ จะ stop ก็ทำไม่ได้ตอนนี้เพราะมีคนกำลังใช้งานอยู่ มีคำสั่งนึงครับที่จะทำให้ Asterisk ทำการ Rotate ไฟล์ Log แล้วสร้างไฟล์ใหม่ขึ้นมาแทน เราก็ลบไฟล์เก่าทิ้งไปได้เลย คำสั่งนี้คือ log rotate

สั่งจาก Linux Prompt
โค้ด: เลือกทั้งหมด
asterisk -rx "log rotate"

หรือคำสั่ง logger rotate สำหรับ Asterisk 1.6+

หรือจะสั่งจาก Asterisk Console
โค้ด: เลือกทั้งหมด
log rotate

หรือ logger rotate

กลับมาดูในโฟลเดอร์ /var/log/asterisk อีกครั้ง ก็จะเห็นแบบนี้
-rw-r--r-- 1 callctr callctr 781 Feb 22 09:13 full
-rw-r--r-- 1 callctr callctr 6531958355 Feb 22 09:13 full.0

ทีนี้เราก็ลบไฟล์ full.0 ทิ้งไปได้เลย

Re: ทำ Rotate ไฟล์ Log ของ Asterisk ด้วยคำสั่ง log rotate

โพสต์โพสต์แล้ว: 26 เม.ย. 2011 10:20
โดย Alpacino
เราสามารถทำการตั้ง cron ให้มัน rotate auto ได้นะครับ เข้าไปแก้ที่ /etc/logrotate.d/asterisk

/var/log/asterisk/full {
daily -------------------> rotate เป็นวัน เวลาที่มันจะ rotate default จะประมาณตี 2 เราสามารถแก้เวลาได้ที่ /etc/crontab แก้แล้ว restart syslog ด้วย
rotate 5 -------------------> เก็บไว้ประมาณ 5 วัน ถ้าอยากเก็บไว้หลายๆวันก็แก้ตรงนี้
missingok
compress -------------------> มีการบีบอัดไฟล์ log จะเป็น .gz
delaycompress
notifempty
sharedscripts
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
endscript
}

ประมาณนี้แหละครับ แล้วอย่าลืม restart cron กับ syslog ด้วยนะครับ