Điểm:6

Tại sao `df` và `du` báo cáo dung lượng trống khác nhau trên Ubuntu 18.04?

lá cờ br

Tại sao hai lệnh này lại báo cáo không gian trống khác nhau như vậy? Điều này đã bắt đầu xảy ra vào năm ngoái trên một số máy ảo Ubuntu 18.04 theo thời gian.

df báo cáo 100% được sử dụng trong khi du -smh chỉ hiển thị 2,3G trong số 4,0G (tổng cộng) đang sử dụng.

Điều này thường được theo sau bởi rsyslog hoặc syslog-ng làm đầy lên /var với các thông báo lỗi khi máy chủ nhật ký hệ thống ngừng hoạt động để bảo trì.

# df -mh /var
Kích thước hệ thống tệp được sử dụng Sẵn có Sử dụng % Được gắn trên
/dev/mapper/new_vg-var 4.0G 3.9G 0 100% /var

# du -smh /var
2.3G /bình

# cầu chì /var
Điểm:8
lá cờ cn

df truy vấn hệ thống tệp để biết tổng số khối được sử dụng, xem man 3 statvfs. Tính toán nhanh chóng và chính xác khối lượng, nhưng không có chi tiết về tệp nào.

du lặp qua các tệp và thêm kích thước của chúng. Chậm hơn, nhưng có thể in theo kích cỡ tệp.

Sự khác biệt có thể có nghĩa là các tệp đã xóa vẫn được mở bởi một số chương trình. Các tệp lớn như vậy phổ biến nhất là nhật ký hoặc cơ sở dữ liệu, nhưng có thể là bất kỳ thứ gì.


Điều này thường được theo sau bởi rsyslog hoặc syslog-ng làm đầy lên /var với các thông báo lỗi khi máy chủ nhật ký hệ thống ngừng hoạt động để bảo trì.

Nguyên nhân gốc rễ sẽ là cấu hình ghi nhật ký từ xa của bạn.

Ngắn hạn, xoay các tệp nhật ký đúng cách, chẳng hạn như bằng cách chạy quay vòng đặc biệt. Lưu ý rằng cấu hình điển hình trong /etc/logrotate.d/*syslog gửi rsyslog tín hiệu HUP để mở lại các tệp nhật ký mới.

Cân nhắc việc tăng kích thước của /var để xử lý kích thước thực của tệp nhật ký.

Sửa lại cấu hình ghi nhật ký để thực hiện điều gì đó phù hợp khi điều khiển từ xa bị hỏng và khi dung lượng ổ đĩa thấp. rsyslog có thể được cấu hình với xếp hàng sử dụng một lượng không gian hữu hạn và loại bỏ các tin nhắn khi hàng đợi đầy. ví dụ cấu hình rsyslog từ cơ sở kiến ​​thức SLES, sẽ cần được tùy chỉnh cho thiết lập ghi nhật ký của bạn:

# con mèo /etc/rsyslog.d/ora_audit.conf
nếu ( $syslogfacility-text == 'local1' ) và ( $syslogseverity == 4 /* cảnh báo */ ) thì {
        $WorkDirectory /var/spool/rsyslog # nơi đặt các tệp bộ đệm
        $ActionQueueFileName RemoteQueue # tiền tố tên duy nhất cho các tệp bộ đệm
        $ActionQueueMaxDiskSpace Giới hạn dung lượng 1G # 1gb (dùng càng nhiều càng tốt)
        $ActionQueueSaveOnShutdown khi # lưu thư vào đĩa khi tắt máy
        $ActionQueueType LinkedList # chạy không đồng bộ
        $ActionResumeRetryCount -1 # lần thử lại vô hạn nếu máy chủ ngừng hoạt động
        $ActionQueueTimeoutEnqueue 0 # khiến thông báo sẽ bị hủy ngay lập tức nếu hàng đợi đầy
        *.* @@aaa.bbb.ccc.ddd:514 # IP của máy chủ nhật ký hệ thống từ xa: cổng 514
        dừng lại
}

# Thiết lập ở trên sẽ loại bỏ bất kỳ tin nhắn nào, nếu đạt đến giới hạn kích thước hàng đợi (trong thiết lập này là 1 GB) ngay lập tức!
Điểm:6
lá cờ mx

Các lý do phổ biến nhất khiến df lớn hơn du:

  • Bạn không chạy du trên toàn bộ hệ thống tập tin.
    • Bạn không có quyền truy cập trên tất cả các thư mục.
    • Bạn đã làm một cái gì đó như du -s /filesystem/*và bạn đang thiếu tệp dotfiles ở trên cùng. chạy lại như du -sx / hệ thống tập tin
    • (Hiếm) Bạn đã che khuất một số hệ thống tệp của mình bằng một giá treo khác. Bằng cách gắn trên đầu trang, du không thể tiếp cận các tệp để xác định kích thước. Có thể định cỡ chúng bằng cách ngắt kết nối hệ thống tệp bóng hoặc thường bằng cách gắn vòng lặp của hệ thống tệp gốc.
  • Bạn có các tệp vẫn đang mở nhưng đã bị xóa. du không thể truy cập chúng để đọc lâu hơn, nhưng chúng vẫn chiếm dung lượng. Cố gắng lsof +aL1 /hệ thống tập tin để tìm các tệp mồ côi và quá trình giữ chúng mở. Khi quá trình đóng tệp, không gian sẽ được giải phóng.

Lý do phổ biến nhất để df nhỏ hơn du:

  • Có một hệ thống tệp bổ sung được gắn bên trong và du đang đi xuống trong đó và cũng đếm không gian đó. chạy lại như du -sx / hệ thống tập tin

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.