ทำไมต้องใช้ xz แทน gzip
- บีบได้เยอะกว่ามาก พอเอามาใช้บีบ log เก่าที่ถูก rotate ทำให้ใช้พื้นที่น้อยลงมาก
- ตอน decompress ทำได้ค่อนข้างเร็ว ช้ากว่า gunzip บ้าง แต่เร็วกว่า bunzip2 มาก
- ใช้เวลา compress นานกว่ามาก เพราะใช้กำลังในการประมวลผลเยอะ (+ram เยอะๆ) แต่มันทำครั้งเดียว และก็ cpu กับ ram ไม่น่าเป็นปัญหากับ server ในปัจจุบันนัก ส่วนการอ่าน/นำไปใช้ก็มี xzcat, xzless ให้ เร็วใกล้เคียงกับ zcat, zless เลยทีเดียว
# apt-get install xz-utils
# apt-get install xz-lzma
เทียบคำสั่ง
gzip : xz
gunzip : unxz
zcat : xzcat
zless : xzless
zmore : xzmore
zgrep : xzgrep
zdiff : xzdiff
zcmp : xzcmp
zegrep : xzegrep
การประยุกต์ใช้กับ logrotate เพื่อขอคืนพื้นที่ใน /var/log
เพิ่มบรรทัดต่อไปนี้เข้าไปใน /etc/logrotate.conf
#---------------------------------
compresscmd /usr/bin/xz
uncompresscmd /usr/bin/unxz
compressext .xz
compressoptions -9
#---------------------------------
การแปลงจาก log เก่าที่เป็น .gz มาเป็น .xz
แปลงไฟล์เดียว
# gunzip access.log.2.gz
# xz -9 access.log.2
แปลงหลายๆ ไฟล์
# cd /var/log
# find . -name "*.gz" | sed 's/.gz$//' | xargs -I '{}' -n 1 -P 2 sh -c "gunzip '{}'.gz ; xz -9 '{}'"
* หมายเหตุ ตรง -P 2 นั่นคือทำพร้อมๆ กัน 2 process ถ้า cpu มีหลายๆ core ก็เพิ่มมากกว่านี้ได้ตามความเหมาะสม จะทำให้แปลงได้ไวขึ้น
ปล. คัดลอกมาจาก note เก่าใน Facebook ของผมเอง
ไม่มีความคิดเห็น :
แสดงความคิดเห็น