web-dev-qa-db-ja.com

ルートディレクトリの100%inode、inodeを解放する方法?

df -i
Filesystem-----Inodes-----Iused-----IFree-----IUse-----Mounted on
dev/sda2-------732960-----727804-----5156-----100%---- /

これらの2つだけが最も高いiノードを持ち、残りはすべて低すぎます。 iノードを解放するために何ができますか?

Proc 10937 iノード

Sys 22504 iノード

apt-get -f installはスペースが残っていないと言います

df -i出力イメージ

enter image description here

apt-get -f install output error image

enter image description here

iノード検索出力イメージ-

enter image description here

varログは26Mbのみです(varディレクトリで最高)

5
anon

私は数週間前に同じ問題を実験しました、そしてこの手順は問題を解決しました。

まず、最もスペースを使用している場所を検索します

    for i in /*; do echo $i; find $i |wc -l; done

一部のディレクトリの読み取りに時間がかかる場合は注意してください。私の場合、/ var /が検索に時間がかかりました。

だからそれを実行する:

    for i in /var/*; do echo $i; find $i |wc -l; done

その後、同じコマンドを/ var/log/*に対して実行し、squid3ログで多数の小さなファイルを検出します。

Rm -rfv /var/log/squid3/access.log*(および再起動squid3)を実行すると、問題が解決し、IUSE%が100から13に変更されました。

よろしく。

ファイルを削除または別のドライブに移動できるオプションの1つ。または、より大容量のドライブを/ dev/sda2ドライブの新しいディレクトリにマウントして、ファイルを移動します。

0
vembutech

上記のコメントにポイントを追加するために、上記のコマンドの少し変更されたバージョンを使用することをお勧めします。

例:/ bin-> usr/bin

for i in /*; do echo $i; find $i |wc -l; done
/bin
1

"find $ i /"の後にスラッシュを使用するだけで、より良い結果を確認できます。

for i in /*; do echo $i; find $i/ |wc -l; done
/bin
865

「lib」、「lib64」についても同様に、同様の動作を観察できます。

0
user551370

2つのオプションが表示されます。

より多くのiノードで再作成するよりも、ファイルシステム全体をバックアップできます。

または、多くのファイルを含むパスに別のドライブをマウントし、そのドライブにファイルを移動して、@vembutechで述べられている構造を維持することもできます。残念ながら、私はまだそれを賛成することはできません。

0
Petr Chloupek

Dockerを使用している場合は、すべての画像を削除します。彼らは多くのスペースを使用しました。

#!/bin/bash
# Stop all containers
docker stop $(docker ps -a -q)
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)
0
omrqs