Để xử lý hiệu quả, bạn cần xác định chính xác nguyên nhân, kiểm tra dung lượng và số lượng inode đang sử dụng, sau đó dọn dẹp các tệp không cần thiết. Bài viết dưới đây hướng dẫn các bước kiểm tra và khắc phục thông qua giao diện aaPanel và dòng lệnh SSH.
Những điểm chính
Nguyên nhân gây đầy dung lượng ổ đĩa và inode trên aaPanel
Khi quản trị VPS bằng aaPanel, bạn có thể gặp hai tình trạng phổ biến:
Một số dấu hiệu thường gặp gồm:
Các nguyên nhân thường gặp là log tăng kích thước trong thời gian dài, cache chưa được dọn dẹp, quá nhiều tệp phiên làm việc, dữ liệu backup cũ hoặc ứng dụng tạo ra hàng nghìn tệp nhỏ.
Để khắc phục đúng cách, bạn cần xác định tài nguyên nào đang cạn kiệt trước khi xóa dữ liệu. Việc dọn dẹp không đúng thư mục có thể làm mất dữ liệu hoặc khiến dịch vụ đang hoạt động gặp lỗi.
Kiểm tra dung lượng ổ đĩa và inode
Cách 1: Kiểm tra bằng giao diện aaPanel
Trước tiên, đăng nhập vào aaPanel và mở trang tổng quan Dashboard.
Tại khu vực hiển thị trạng thái hệ thống, kiểm tra những thông số liên quan đến dung lượng ổ đĩa và inode. Tên mục có thể khác nhau tùy phiên bản aaPanel.
Khi mức sử dụng tiến gần 90% hoặc cao hơn, bạn nên kiểm tra nguyên nhân và lên kế hoạch giải phóng tài nguyên. Đây là ngưỡng cảnh báo tham khảo, không phải giới hạn cố định cho mọi máy chủ.
Cách 2: Kiểm tra bằng SSH
Kết nối đến máy chủ thông qua SSH, sau đó chạy hai lệnh sau:
df -h
df -i
Ý nghĩa của từng lệnh:
Hãy chú ý cột Use% trong kết quả df -h và IUse% trong kết quả df -i. Nếu một trong hai đạt 100%, phân vùng tương ứng có thể không còn khả năng tiếp nhận dữ liệu hoặc tạo tệp mới.
Nếu dung lượng ổ đĩa vẫn còn nhưng website không thể tạo tệp, hãy kiểm tra inode trước khi tiến hành dọn dẹp.
Xác định thư mục đang chiếm nhiều dung lượng
Sau khi xác định phân vùng gặp vấn đề, bạn cần tìm những thư mục sử dụng nhiều dung lượng nhất để lựa chọn dữ liệu cần xử lý.
Kiểm tra dung lượng các thư mục cấp đầu tiên
Chạy lệnh:
sudo du -xhd1 / 2>/dev/null | sort -hr | head -10
Lệnh này thống kê dung lượng các thư mục cấp đầu tiên trên phân vùng gốc, sắp xếp theo dung lượng giảm dần và hiển thị 10 kết quả lớn nhất. Tùy phiên bản hệ điều hành, cú pháp của du có thể khác nhau.
Nếu muốn kiểm tra các website trong thư mục /www/wwwroot, sử dụng:
sudo du -sh /www/wwwroot/* 2>/dev/null | sort -hr | head -10
Kết quả giúp bạn xác định website hoặc thư mục nào đang sử dụng nhiều dung lượng. Sau đó, hãy kiểm tra sâu hơn để tìm các tệp log lớn, dữ liệu backup cũ hoặc cache không còn cần thiết.
Lưu ý rằng du thống kê dung lượng của các tệp và thư mục có thể truy cập được. Kết quả có thể không hoàn toàn trùng với df nếu có tệp đã bị xóa nhưng vẫn được tiến trình mở, hoặc do đặc điểm của hệ thống tệp.
Quản lý và dọn dẹp bản sao lưu trên aaPanel
Các bản sao lưu của aaPanel có thể chiếm nhiều dung lượng nếu được lưu trữ trong thời gian dài. Một vị trí thường gặp là:
/www/backup/
Tuy nhiên, vị trí thực tế có thể thay đổi tùy cấu hình. Hãy xác nhận thư mục lưu backup trước khi thực hiện thao tác xóa.
Cách 1: Xóa bản backup bằng giao diện aaPanel
-
Đăng nhập vào aaPanel.
-
Tìm khu vực quản lý bản sao lưu hoặc chức năng Backup Restore, tùy phiên bản.
-
Kiểm tra danh sách bản backup của website, cơ sở dữ liệu hoặc hệ thống.
-
Xác định những bản cũ không còn cần thiết và đảm bảo vẫn còn bản sao lưu phù hợp trước khi xóa.
-
Thực hiện thao tác xóa theo hướng dẫn trên giao diện.
Cách 2: Kiểm tra bản backup bằng SSH
Để xem dung lượng thư mục backup, chạy:
sudo du -sh /www/backup
sudo du -ah /www/backup 2>/dev/null | sort -hr | head -20
Hai lệnh trên giúp kiểm tra tổng dung lượng và liệt kê những mục lớn nhất trong thư mục.
Không nên chạy ngay lệnh rm -rf /www/backup/* vì thao tác này có thể xóa toàn bộ bản sao lưu, kể cả những bản cần thiết để khôi phục website hoặc cơ sở dữ liệu. Chỉ xóa từng tệp đã xác định rõ là không còn sử dụng.
Dọn dẹp tệp tạm của aaPanel
Trong quá trình hoạt động, aaPanel và các ứng dụng có thể tạo tệp tạm tại những thư mục như:
/www/server/panel/tmp
/tmp
Đây là các vị trí cần kiểm tra khi máy chủ thiếu dung lượng hoặc inode. Tuy nhiên, không phải mọi tệp trong các thư mục này đều có thể xóa tùy ý vì một số tiến trình có thể vẫn đang sử dụng chúng.
Trước tiên, kiểm tra dung lượng:
sudo du -sh /www/server/panel/tmp /tmp 2>/dev/null
Để xem các tệp đang tồn tại trong thư mục tạm của aaPanel:
sudo find /www/server/panel/tmp -maxdepth 1 -type f -printf '%TY-%Tm-%Td %s %p\n' 2
>/dev/null | sort
Sau khi xác định được tệp tạm đã hết hạn và không còn được ứng dụng sử dụng, bạn có thể xóa từng tệp cụ thể bằng lệnh rm.
Không nên xóa toàn bộ nội dung của /www/server/panel/tmp hoặc /tmp một cách mù quáng. Nếu chưa xác định được tệp nào an toàn để loại bỏ, hãy kiểm tra tài liệu của ứng dụng hoặc nhờ bộ phận kỹ thuật hỗ trợ.
Cách khắc phục tình trạng đầy inode
Khi inode cạn kiệt, việc chỉ xóa một vài tệp dung lượng lớn thường không giải quyết được vấn đề. Bạn cần tìm và xử lý những thư mục chứa quá nhiều tệp nhỏ.
Bước 1: Kiểm tra số lượng tệp
Chạy lệnh:
sudo find / -xdev -type f 2>/dev/null | wc -l
Lệnh này đếm số tệp thông thường trên hệ thống tệp chứa thư mục gốc, không đi qua các hệ thống tệp khác. Kết quả chỉ mang tính tham khảo vì inode còn được sử dụng bởi thư mục và các đối tượng khác, không chỉ riêng tệp thông thường.
Để đánh giá chính xác tình trạng inode, hãy đối chiếu kết quả với lệnh:
df -i
Bước 2: Tìm thư mục chứa nhiều inode
Nếu hệ thống sử dụng phiên bản GNU du có hỗ trợ tùy chọn --inodes, bạn có thể chạy:
sudo du -x --inodes --max-depth=1 / 2>/dev/null | sort -nr | head -10
Lệnh này thống kê số inode theo từng thư mục cấp đầu tiên trên phân vùng gốc và sắp xếp từ cao xuống thấp.
Nếu kết quả cho thấy /www hoặc một thư mục website có số lượng inode lớn, hãy kiểm tra sâu hơn tại vị trí đó. Những nguyên nhân phổ biến gồm cache tạo quá nhiều tệp nhỏ, session cũ, thư mục upload hoặc log được chia thành nhiều tệp.
Bước 3: Xác định và loại bỏ tệp không cần thiết
Sau khi tìm được thư mục có số lượng tệp lớn, hãy kiểm tra loại dữ liệu và thời điểm tạo tệp trước khi xóa.
Ví dụ, để thống kê số tệp trong thư mục tạm:
sudo find /tmp -xdev -type f 2>/dev/null | wc -l
Để kiểm tra số lượng tệp trong các thư mục cache của website, có thể sử dụng:
sudo find /www/wwwroot -type d -name cache -print
Lệnh thứ hai chỉ liệt kê những thư mục có tên cache, không xóa dữ liệu.
Sau đó, bạn cần kiểm tra từng thư mục và xác định cache nào có thể tạo lại, tệp nào đã hết hạn hoặc không còn được sử dụng. Chỉ tiến hành xóa sau khi đã xác minh.
Bạn cũng có thể tham khảo các chức năng dọn dẹp tích hợp của aaPanel, nếu phiên bản đang dùng có hỗ trợ. Trước khi chạy lệnh quản trị như bt 15, hãy kiểm tra menu lệnh tương ứng trên phiên bản aaPanel của bạn thay vì mặc định rằng lệnh này có cùng chức năng trên mọi hệ thống.
Thiết lập quản lý log định kỳ để hạn chế đầy ổ đĩa
Log giúp theo dõi hoạt động của website và phát hiện lỗi máy chủ. Tuy nhiên, nếu log tăng liên tục mà không được quản lý, chúng có thể chiếm nhiều dung lượng và góp phần gây đầy ổ đĩa.
Thay vì tự động xóa hàng loạt log cùng tệp tạm bằng một lệnh rm -rf, bạn nên ưu tiên sử dụng cơ chế xoay vòng log (log rotation) để kiểm soát kích thước, thời gian lưu trữ và số lượng bản log.
Bước 1: Kiểm tra các thư mục log
Những vị trí thường gặp trên aaPanel gồm:
/www/wwwlogs
/www/server/panel/logs
Kiểm tra dung lượng hiện tại bằng lệnh:
sudo du -sh /www/wwwlogs /www/server/panel/logs 2>/dev/null
Nếu một thư mục chiếm nhiều dung lượng, hãy xác định tệp log lớn và kiểm tra xem dịch vụ nào đang sử dụng chúng trước khi xử lý.
Bước 2: Cấu hình cơ chế xoay vòng log
Bạn có thể sử dụng logrotate nếu hệ điều hành và cấu hình máy chủ hỗ trợ. Cơ chế này cho phép xoay vòng log theo thời gian hoặc kích thước, giữ lại số lượng bản nhất định và nén các bản cũ.
Trước khi áp dụng, hãy xác định đúng đường dẫn log, cách ứng dụng mở lại tệp sau khi xoay vòng và cấu hình hiện có. Không nên áp dụng một mẫu cấu hình chung cho tất cả log vì mỗi dịch vụ có thể có yêu cầu riêng.
Bước 3: Kiểm tra lịch chạy định kỳ
Nếu cần sử dụng Crontab để chạy một tác vụ bảo trì, hãy mở trình chỉnh sửa lịch tác vụ:
crontab -e
Bạn có thể thiết lập lịch chạy một tập lệnh bảo trì đã được kiểm tra trước. Ví dụ, để chạy tập lệnh lúc 02:00 mỗi ngày:
0 2 * * * /usr/local/sbin/maintenance-script.sh
Trong đó, /usr/local/sbin/maintenance-script.sh là đường dẫn ví dụ; bạn cần thay bằng tập lệnh thực tế đã tạo, kiểm tra quyền thực thi và xác minh nội dung trước khi kích hoạt.
Không nên sử dụng tác vụ định kỳ để xóa toàn bộ nội dung của /www/wwwlogs, /tmp hoặc /www/server/panel/logs mà không phân biệt tệp đang sử dụng và tệp đã hết hạn. Việc này có thể làm mất dữ liệu phục vụ chẩn đoán sự cố hoặc ảnh hưởng đến ứng dụng đang hoạt động.