đĩa đã đầy, nhưng không thể tìm thấy các tập tin hoặc thư mục lớn


20

Máy chủ Ubuntu cho tôi thấy rằng tôi sử dụng tất cả các đĩa:

Usage of /:   95.5% of 118.12GB

Và tôi cố gắng tìm các thư mục và tệp lớn, chạy ncdu:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

Theo ncdutôi sử dụng khoảng 10 GiBcủa 128 GiB- đó là về 10 %. Mâu thuẫn.

Làm thế nào để làm sạch của tôi ubutntu servermà không cần khởi động lại?

Tôi nghĩ rằng ncdunói dối và sử dụng các ứng dụng khác để tìm các tập tin và thư mục lớn. Tất cả đều cho thấy kết quả tương tự như ncdu.

df -hlệnh cho thấy đĩa đã đầy.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

Cập nhật

sudo du -sch /* kết quả:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G tổng số như bình thường. Nhưng tôi thấy cannot accesshàng, có thể vấn đề vì chúng.

Sau đó tôi kiểm tra thư mục lớn nhất trong /. Đó là /root:

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total

Chỉ cần suy nghĩ, có thể kiểm tra nội dung của / var / log / để xem liệu có bất kỳ nhật ký nào đã phát triển theo cấp số nhân không.
Mordoc

/ var / log khoảng 2 GiB. Không sao đâu
Maxim Yefremov

1
Hãy thử du -sch /*xem thư mục gốc nào đang sử dụng nhiều không gian nhất và đi xuống từ đó vào những nơi sử dụng nhiều không gian nhất.
DopeGhoti

@DopeGhoti Tôi đã thử nhưng thấy tương tự về 8.1 GiBđầy đủ (thêm cái này để cập nhật). Không thể tìm ra phần còn lại về đâu100 GiB
Maxim Yefremov

2
Tôi biết bạn không muốn, nhưng cắn viên đạn và khởi động lại.
douggro

Câu trả lời:


13

Tôi đã gặp vấn đề tương tự trên các máy thí nghiệm của chúng tôi và sử dụng lệnh này

du -sch .[!.]* * |sort -h

Tôi đã có thể tìm thấy các tập tin ẩn như bên trong thùng rác của người dùng mà họ chưa xóa.

Tín dụng ở đây nơi tôi ban đầu tìm thấy câu trả lời này.


Giải pháp tuyệt vời!
AivanF.

5

Kiểm tra các tệp đã xóa vẫn đang được giữ mở theo một quy trình:
sudo lsof | grep deleted | less

Điều đó sẽ hiển thị pid và mô tả tập tin. Tôi đã có vấn đề chính xác này trên một máy chủ, không có gì ncdungoài việc lấp đầy đĩa. Nó hóa ra là một quá trình hàng đêm để chuyển các tập tin sang chia sẻ samba được gắn kết và đôi khi không đóng xử lý tập tin một cách chính xác, dường như.

Nếu bạn tìm thấy các tệp đã bị xóa và muốn dọn sạch chúng, việc khởi động lại có lẽ là dễ nhất nếu điều đó được chấp nhận. Hoặc bạn có thể thử giết quá trình. Hoặc nếu bạn chắc chắn rằng chúng không được sử dụng, bạn có thể hướng dẫn sử dụng chúng, với một cái gì đó như thế này:
> /proc/14487/fd/12


Đây là vấn đề của tôi. Tomcat đang giữ một tập tin bị xóa 80GB. Một khởi động lại là đủ để sửa chữa nó.
AFP_555

Làm cách nào để xóa chúng nếu lệnh "khởi động lại" không đủ?
lấp lánh

4

Lệnh sau sẽ hiển thị việc sử dụng đĩa cho thư mục / home với --max-height = 1

user@linux:~$ sudo du -h -d 1 /

2

Hãy chắc chắn để kiểm tra gắn kết đĩa của bạn. Không có giải pháp nào tôi thấy ở đây có thể xác định không gian bị chiếm bởi một thư mục có gắn kết được đặt trên nó.


Tôi có đề nghị gì không? Tôi nghĩ đây có thể là vấn đề của tôi
Eliethesaiyan


Về cơ bản, hãy kiểm tra các mount hiện có của bạn với mount, sau đó thêm mount thứ hai cho mỗi thư mục có mount được đặt trên chúng. Sau đó, bạn có thể sử dụng các công cụ đĩa thông thường như dutrên mount vừa tạo để xem đó có phải là thủ phạm không.
Rich Remer

1

Chúng tôi đã có vấn đề tương tự và hóa ra đó là hình ảnh docker, được lưu trữ dưới var / lib / docker

ncdu không liệt kê những thứ này vì chúng không hiển thị cho người dùng. thậm chí chạy ncdu theo sudo cũng không giúp được gì.

Lệnh này sẽ xóa tất cả các hình ảnh docker hiện có ...

docker rmi $(docker images -a -q)


Vấn đề tương tự ở đây. Trên thực tế, thậm chí docker system prunekhông tìm thấy mọi thứ. Lệnh này (có trước hệ thống docker prune) thực hiện thủ thuật.
jscharf 17/12/18

1
Gần đây chúng tôi đã phát hiện ra rằng docker system prune -a -fkỹ lưỡng hơn rất nhiều
Baldy

0

Bạn có thể chạy lệnh tiếp theo để tìm 10 tệp lớn nhất:

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.