Mở đầu:
Trong quá trình vận hành hệ thống linux, đôi khi chúng ta sẽ gặp trường hợp dung lượng hệ thống vượt ngưỡng 90%. Đôi khi chúng ta chỉ cần một vài dòng lệnh để tìm ra thư mục hoặc file có dung lượng lớn, và xóa chúng đi là xong, nhưng đôi khi bạn sẽ cảm thấy bối rối khi mặc dù đã xóa đi file có dung lượng lớn rồi, nhưng dung lượng hệ thống vẫn cao. Bài viết này sẽ giúp bạn khắc phục điều này.
Các vấn đề thường gặp:
-
Tại sao dung lượng đĩa không được giải phóng sau khi xóa một tập tin trong Linux?
-
Khi xóa một tập tin hoặc tập tin lớn, tập tin bị xóa thành công nhưng kích thước của hệ thống tập tin không có sự thay đổi.
-
Tôi đã xóa một số file nhưng dung lượng đĩa trên hệ thống file vẫn không thay đổi.
-
Hệ điều hành giữ một số tập tin log rất lớn được mở với một số lớn khoảng ~ 30G. Tập tin đã bị xóa trước đó, nhưng nó chỉ dừng và khởi động lại quá trình JVM/Java phát hành không gian đĩa.
-
Khi bạn thực hiện câu lệnh df để kiểm tra dung lượng đĩa , cho thấy việc sử dụng hơn 90%, tuy nhiên, bạn lại không thấy folder hay tệp tin nào chiếm nhiều dung lượng đến vậy.
Bước 1: Tìm và xóa đi những file có dung lượng lớn
Đầu tiên, sử dụng câu lệnh sau để tìm folder có kích thước lớn:
du -sh --exclude="/proc" /* | grep G
Hoặc tìm file có dung lượng lớn như sau:
find / -size +10M -exec ls -lah {} \;
Bước 2: Xử lý những process đã bị deleted đang chiếm nhiều dung lượng
- Shutdown Application liên quan để nhã liên kết
- Kill process đang liên kết giữa application và file
- Truncate File Size
Cách 1: Tìm vào xóa thủ công bằng PID ( không khuyến khích)
lsof | grep deleted
$ lsof | grep "deleted"
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
ora 25575 8194 oracle oracle 33 REG 65,65 4294983680 31014933 /oradata/DATAPRE/file.dbf (deleted)
kill -9 < ID >
Cách 2: Xóa tự động với câu lệnh ( không khuyến khích)
lsof|grep deleted|awk '{print $2}'|xargs kill -9
Cách 3: Truncate File Size ( Khuyến khích )
$ lsof | grep "deleted"
COMMAND PIDTID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
ora 25575 8194 oracle oracle 33 REG 65,65 4294983680 31014933 /oradata/DATAPRE/file.dbf (deleted)v
$ echo > /proc/<pid>/fd/<fd_number>
ví dụ:
$ echo > /proc/25575/fd/33
Nguồn:
Nhấn Subcribe để nhận thêm nhiều bài viết mới Like Facebook
[maxbutton id=”2″ ] [maxbutton id=”3″ ]
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Add Comment