Trong quá trình vận hành VPS/Server Linux (Ubuntu, Debian, CentOS…), thư mục /var/log rất dễ bị phình to và gây đầy disk, đặc biệt với server chạy web traffic lớn, PHP framework (CI3, Laravel), MySQL, bot crawl nhiều…

Bài viết này hướng dẫn cách kiểm tra – xoá log đúng cách, an toàn, không gây lỗi dịch vụ và chống đầy disk về sau.


1. /var/log là gì? Vì sao dễ đầy disk?

/var/log là nơi Linux lưu:

  • Log hệ điều hành (syslog, auth.log)
  • Log service (nginx, mysql, cron)
  • Log systemd (journal) – thủ phạm phổ biến nhất

👉 Khi log không được rotate / giới hạn dung lượng, chúng có thể chiếm vài GB chỉ sau vài ngày.


2. Kiểm tra dung lượng /var/log

Xem tổng dung lượng

sudo du -sh /var/log

Xem thư mục nào nặng nhất

sudo du -h --max-depth=1 /var/log | sort -hr

Ví dụ:

3.0G  /var/log
2.9G  /var/log/journal
17M   /var/log/nginx

👉 Kết luận ngay: journal chiếm disk.


3. Xoá log đúng cách (KHÔNG xoá bừa)

⚠️ Nguyên tắc an toàn:

  • ❌ Không xoá thư mục
  • ❌ Không xoá file .log đang được service sử dụng
  • ✅ Chỉ xoá file .gz hoặc truncate nội dung log

4. Dọn /var/log/journal (QUAN TRỌNG NHẤT)

Kiểm tra dung lượng journal

sudo journalctl --disk-usage

Xoá log cũ – giữ lại 200MB (khuyến nghị)

sudo journalctl --vacuum-size=200M

Hoặc theo thời gian:

sudo journalctl --vacuum-time=7d

👉 Thường giải phóng 80–90% dung lượng /var/log.


5. Chống journal phình to trở lại (RẤT NÊN)

Mở cấu hình:

sudo nano /etc/systemd/journald.conf

Thiết lập:

SystemMaxUse=200M
SystemKeepFree=500M
MaxRetentionSec=7day

Restart:

sudo systemctl restart systemd-journald

VPS nhỏ (20–30GB disk)

Có thể tắt persistent journal:

Storage=volatile

➡️ Log chỉ lưu RAM, reboot là sạch.


6. Xoá log nginx

Xem dung lượng

sudo du -sh /var/log/nginx

Xoá file log đã nén

sudo rm -f /var/log/nginx/*.gz

Xoá nội dung log, giữ file

sudo truncate -s 0 /var/log/nginx/*.log

An toàn, nginx ghi tiếp bình thường.


7. Xoá log MySQL

sudo du -sh /var/log/mysql
sudo truncate -s 0 /var/log/mysql/*.log

8. Xoá syslog, auth.log

sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log

9. Kiểm tra lại sau khi dọn

du -sh /var/log
df -h

10. Nguyên nhân phổ biến khiến log tăng nhanh

  • Bot scan 404 / wp-login.php
  • PHP error spam (CI3, Laravel)
  • MySQL warning
  • Cron job lỗi

Soi nhanh lỗi nghiêm trọng:

journalctl -p 3 -xb

11. Checklist nhanh (TL;DR)

  • du -h --max-depth=1 /var/log
  • journalctl --vacuum-size=200M
  • Truncate nginx / mysql log
  • Giới hạn journald vĩnh viễn

Kết luận

Trong thực tế vận hành server Linux:

  • 90% trường hợp đầy /var/log là do journal
  • Xoá đúng cách giúp giải phóng GB disk trong vài giây
  • Cấu hình giới hạn log giúp không bao giờ gặp lại lỗi này

👉 Phù hợp cho VPS chạy web, CI3, WordPress, traffic lớn.


*Nếu bạn cần script auto clean log hoặc cấu hình tối ưu riêng cho server traffic cao, có thể áp dụng trực tiếp