
Logrotate
เป็นกลไกของระบบปฏิบัติการลีนุกซ์ที่ช่วยลบ log file ที่เก่ากว่าออกไป แล้วสร้างไฟล์ log ขึ้นใหม่ ซึ่งมีผลทำให้ไฟล์ log ไม่ใหญ่มากเกินไป โดยการสร้าง log file มาใหม่นั้นจะไปสร้างซ้ำกับไฟล์เดิม ในไฟล์ /etc/logrotate.conf จะมี option มากกมายให้เราแก้ไข แต่ พอสรุป ได้ คราวๆ ดังนี้
การประยุกต์การใช้งานใน /etc/logrotate.conf
หลังจากที่เราได้เรียนรู้ option ใน logrotate แล้ว เราจะประยุกต์การปรับแต่งในส่วนของ squid (access.log store.log) เพื่อเตรียมตัวสำหรับการเก็บ log file ให้ดียิ่งขึ้น
# pico /etc/logrotate.conf
ให้เราดูในส่วนของ squid เท่านั้น (อย่าลืม backup ข้อมูลเก่าด้วยนะครับ)
ด้วยคำสั่ง
# cp /ete/logrotage.conf /etc/logrotage.conf.org
เราจะเห็น Config เดิมๆ ดังนี้
/var/log/squid/access.log /var/log/squid/user_agent.log /var/log/squid/referer.log {
weekly
copytruncate
ifempty
missingok
}
/var/log/squid/cache.log {
weekly
rotate 3
copytruncate
compress
missingok
}
แก้เป็น
/var/log/squid/access.log /var/log/squid/user_agent.log /var/log/squid/referer.log {
daily (ลบทุกวัน)
copytruncate
ifempty
missingok
}
/var/log/squid/cache.log {
weekly
rotate 2
copytruncate
compress
missingok
}
การทำเก็บ access.log ไปตามวัน
access.log และ store.log เป็นข้อมูลการใช้งาน อินเตอร์เน็ต ภายในร้าน ซึ่งเรามีวิธีการเก็บให้เป็นไปตามวัน สามารถทำดังนี้
#pico /etc/squid/squid.conf
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log none
( แล้ว ทำการ save หรือ ใครจะใช้ vi ก็ ได้ นะครับ)
2. pico /home/changeaccess.sh
#!/bin/sh
timeaccess=`date +%Y-%m-%d`
cp /var/log/squid/access.log /home/shared/$timeaccess-access.log
cp /var/log/squid/store.log /home/shared/$timeaccess-store.log
( แล้ว ทำการ save หรือ ใครจะใช้ vi ก็ ได้ นะครับ)
ในที่นี้ผมได้สร้าง folder /home/shared ไว้แล้วนะครับ ใครที่ยังสร้างไม่เป็น ก็สร้างตามนี้เลย
#mkdir /home/shared
3. chmod +x /home/changeaccess.sh ( เพื่อให้ โปรแกรมสามารถ รัน script นี่ ได้)
4. เวลาจะเรียกใช้
# cd /home
# ./changeaccess.log

จากรูป จะเห็น ว่า access.log มัน จะเปลี่ยนไป ตามวัน
ในกรณีนี้เราจะทำเอาไป ไว้ใน folder shared ซึ่งเป็น folder ที่ share ด้วย samba เราจึงสามารถเอาไฟล์ access.log เหล่านี้ไป write ได้ เลย อิอิ

5. เอา ไป สั่ง ใน fcrontab ( ใน ipcop)
# fcrontab -u root e
เพิ่ม
00 22 * * * sh /home/changeaccess.sh
(ให้ทุกวัน เวลา 22.00 run คำสั่ง นี้ และอย่าลืม save นะครับ)
จัดทำโดย ร้านใบละพันอินเตอร์เน็ต
42/16 ซอย 9 ถ. สุดบรรทัด อ. เมือง จ. สระบุรี
ติดต่อกับเรา : linuxthailand@hotmail.com