เท่าที่รู้ไม่มียังฟีเจอร์แบบนี้นะครับ เมื่อกี้ผมลองค้นหาใน google ใช้ keyword ว่า "how to delete file older than" ก็เจออยู่หลายเว็บครับ ส่วนใหญ่ก็บอกว่าให้ใช้คำสั่งฟอร์แม็ตแบบนี้
find /path/to/files* -mtime +5 -exec rm {} \;
อธิบายได้ว่า
find คือคำสั่งในการค้นหา
/path/to/files* ให้ระบุชื่อ path ที่เก็บไฟล์ อย่างไฟล์บันทึกเสียงของ Elastix มันอยู่ที่ path นี้ /var/spool/asterisk/monitor
-mtime +5 ระบุว่าเป็นไฟล์ที่มีอายุมากกว่า 5 วัน นับจากวันที่รันคำสั่งนี้
-exec rm คือให้รันคำสั่ง rm ซึ่งก็คือ remove
{} \; ให้ใส่ไว้ด้วยเพื่อบอกว่าสิ้นสุดคำสั่งแล้ว
เช่น ให้ลบไฟล์เสียงที่บันทึกไว้ที่มีอายุมากกว่า 30 วัน
- โค้ด: เลือกทั้งหมด
find /var/spool/asterisk/monitor/* -mtime +30 -exec rm {} \;
รันคำสั่งนี้ทุกเดือน ไฟล์ก็จะไม่เต็มฮาร์ดดิสก์ครับ ถ้าไม่อยากรันคำสั่งนี้ทุกเดือนก็ให้ยกคำสั่งไปไว้ใน crontab
- โค้ด: เลือกทั้งหมด
crontab -e
ให้รันคำสั่งนี้ทุกวันที่ 1 ของทุกเดือน เวลา 04.30 ให้เพิ่มบรรทัดต่อไปนี้
- โค้ด: เลือกทั้งหมด
#Automatic Delete File Older Than 30 Days
30 04 1 * * find /var/spool/asterisk/monitor/* -mtime +30 -exec rm {} \;
ปรับแต่งจำนวนวันตามความต้องการครับ ลองดูครับ น่าจะพอช่วยได้ ส่วนรายละเอียดการใช้งาน crontab ให้ดูจากบทความด้านล่างนี้ได้เลยครับ
บทความที่เกี่ยวข้องใช้ crontab ตั้งเวลารันโปรแกรมในเครื่อง CentOS