2011-12-14 14 views
6
  1. Hôm nay tôi nhận thấy tệp dead.letter được tạo trong thư mục gốc của tôi trên một trong các cá thể EC2.
  2. Sau khi xem xét, tôi đã biết rằng điều này được tạo do một số chức năng email không đầy đủ hoặc bị chấm dứt.
  3. Nó có kích thước 6 GiB và không còn dung lượng trống trong thư mục gốc.
  4. Tôi đã xóa tệp còn thư mục gốc của tôi không hiển thị dung lượng trống.

Bất kỳ ý tưởng nào về cách xóa tệp này và giải phóng không gian gốc?Cách xóa tệp "dead.letter" không để lại không gian trống trong thư mục gốc

+0

bạn có thể nên hỏi điều này trên serverfault.com thay vì stackoverflow – Gryphius

Trả lời

7

Nếu bạn đã xóa nó và không gian vẫn không được giải phóng, thì điều đó có nghĩa là một quy trình có một bộ xử lý tệp được mở trên đó.

Hãy thử và tìm ra PID của quá trình sử dụng, ví dụ:

for process in /proc/[0-9]*; do 
    for fd in $process/fd/*; do 
     file=$(readlink -f $fd) 
     if [ "$file" = "/root/dead.letter" ]; then 
      echo $process 
     fi 
    done 
done 

Sau đó giết nó/họ.

+0

Cảm ơn bạn rất nhiều anh chàng. – samarth

1

Nếu tập lệnh trên không hoạt động, người ta chỉ có thể nghĩ về các quy trình có thể có xử lý đối với các tệp như vậy chiếm không gian trong thư mục gốc hoặc thư mục chính.

Kill quá trình như vậy và không gian đĩa sẽ được giải phóng

Bạn có thể sử dụng (ps -ef | grep process_name) để tìm hiểu quá trình id.

+1

Bạn cũng có thể sử dụng 'pgrep process_name' – fge

2

Các bạn biết về lsof (http://linux.die.net/man/8/lsof)?

Trong trường hợp này:

sudo lsof /root/dead.letter 

này in ra thông tin về quá trình có tập tin mở. Bạn vẫn phải giết quá trình đó.