- โค้ด: เลือกทั้งหมด
asterisk -r
ข้อความที่เราเห็นมันยังถูกเก็บไว้ในไฟล์ log ของ Asterisk ด้วยนะครับ ซึ่งอยู่ที่โฟลเดอร์ /var/log/asterisk ไฟล์นี้อาจจะชื่อ messages หรือไม่ก็ full อยู่ที่เวอร์ชั่นของ Asterisk อ่ะครับ
นอกจากไฟล์ messages/full นี้แล้วก็ยังมีไฟล์
dateformat ไม่รู้ว่าเอาไว้เก็บอะไร
queue_log ไว้เก็บ log ที่เกิดกับ queue
event_log ไม่รู้เอาไว้เก็บอะไร
การทำ Log Rotate เป็นการเก็บ Log เก่าๆไว้เป็นไฟล์ต่างหาก ซึ่งเราอาจจะลบไฟล์ Log เก่าๆทิ้งไปเลยก็ได้จะได้ทำให้ฮาร์ดดิสก์ว่างขึ้น เราทำ Log Rotate ได้ 2 วิธีนะครับ คือ
1. ใช้คำสั่ง logger rotate จากพร้อมท์ของ Asterisk
- โค้ด: เลือกทั้งหมด
callcenter*CLI> logger rotate
== Parsing '/etc/asterisk/logger.conf': Found
Asterisk Event Logger restarted
Asterisk Queue Logger restarted
ลองดูใน /var/log/asterisk ก็จะเห็นไฟล์ full.0 หรือ message.0 ไฟล์ dataformat.0, queue-log.0, event_log.0 ถ้าไม่อยากเก็บไว้จะลบทิ้งก็ได้นะครับ
2. ใช้คำสั่ง log rotate จากพร้อมท์ของ Linux
- โค้ด: เลือกทั้งหมด
# asterisk -rx "logger rotate"
3. ใช้บริการ Log Rotate Service บน Linux
- โค้ด: เลือกทั้งหมด
vi /etc/logrotate.d/asterisk
แล้วใส่ข้อความด้านล่างนี้ลงไปครับ (ไม่ได้คิดเองครับ ก๊อบมา เปลี่ยนชื่อไฟล์ full เป็น messages ถ้าจำเป็น และเปลี่ยน asterisk asterisk เป็นยูสเซอร์ตามที่ใช้รัน Asterisk ในเครื่องนะครับ)
- โค้ด: เลือกทั้งหมด
/var/log/asterisk/full /var/log/asterisk/*log {
missingok
rotate 5
daily
size = 5M
create 0640 asterisk asterisk
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
endscript
}
เสร็จแล้วลองรัน logrotate ดูครับ จากพร้อมท์ Linux
- โค้ด: เลือกทั้งหมด
logrotate /etc/logrotate.d/asterisk
รันทีเดียวพอนะครับ ดูว่าเวอร์คไม่เวอร์ค ถ้าไฟล์ full หรือ messages ยังเล็กๆอยู่ก็จะไม่มีผลอะไร แล้วก็มาเช็คไฟล์ใน /var/log/asterisk
ปล. เดิมผมไม่รู้ว่ามีคำสั่ง logger rotate อยู่ใน Asterisk ด้วย เวลาผมจะลบ Log File ผมต้อง Stop Asterisk ก่อน แล้วลบไฟล์ แล้ว Start Asterisk ใหม่ ตอนนี้ก็ไม่ต้องทำอย่างนั้นอีกแล้วครับ