ドライブは常に満杯です。可能なすべてのスペアファイルとランダムファイルを狩りました。コアダンプファイルをgrepし、不要なバックアップの一部を削除しました...
あなたの次の動きは何でしょうか。
問題の実際のサーバーには10 GBのWebサイトファイルがあり、OSは10 GBを超えてはなりません。50GB(仮想)ドライブの容量を追跡するにはどうすればよいですか。
私はncdu( http://dev.yorhel.nl/ncd )がこれに非常に役立つと思います。
確かにもっと複雑な方法がありますが、私が覚えているのは
du --max-depth = 1 -h /
次に、ほとんどのスペースを使用するディレクトリを取得します(du --max-depth=1 -h /yourdir)
そして、犯人が見つかるまで深く調べます。
出力をサイズでソートし、人間が読める形式を気にしない場合は、du --max-depth=1 /your_dir | sort -n
私はGnomeプログラムのbaobabを使用しています。これはデスクトップで実行でき、SSH経由でサーバーに接続できます。これは、ディスク領域の使用状況のわかりやすいグラフィックマップを示しています。 Gnomeの下に「Disk Usage Analyzer」としてインストールされます
gt5 を試してみてください。
df -kは、どのfsが問題であるかを示します。次に、その最上位のディレクトリにcdし、du -xk |を実行します。ソート-n | tail -25これは、ソートされた上位25のディレクトリを表示します。Sun9以前では、xをdに置き換えます。
ファイルは書き込み中に削除できるため、作成プロセスの実行中にディスク領域を使用しますが、ファイル名はありません。
これにより、通常のツールでは検索できなくなります。lsofを使用して、ファイルを開いているプロセスを調べることができます。
システムでソフトウェアを実行できる場合、 xdiskusage は、どのディレクトリ/ファイルが領域を消費しているかをグラフィカルに示します。非常に便利です。
KDEにも同様のものが含まれていると思います。
テキストのみで追加のソフトウェアをインストールできない場合は、du
をクリエイティブに使用すれば、おそらくそこにも到達できます。
データベースサーバー上の不正なプロセスを追跡するために、私は一緒に石畳を作りました:rabbitfinder
#!/bin/sh
tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
それはちょっとだらけであまり堅牢ではありませんが、このように機能します:
ps -lFp
は、どのプロセスがそれらを所有しているかをファイルに表示します
user@poseidon:~$ tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
./tmp/output:
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD
0 R 1000 14310 14275 23 80 0 - 1072 - 748 1 22:19 pts/2 00:00:06 dd if /dev/zero of ./output bs 1024 count 10000000
次のコマンドを使用して、容量が大きすぎるファイルまたはフォルダを見つけることができます。
例えば。現在のフォルダーの上位20個までのディレクトリを表示するには、次のワンライナーを使用します。
du -ah . | sort -rh | head -20
または:
du -a . | sort -rn | head -20
現在のディレクトリの上位20ファイル(再帰的に):
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
または人間が読めるサイズ:
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
OSX/BSDで正しく動作する2番目のコマンド(
sort
には-h
がないため)、sort
をcoreutils
からインストールする必要があります。次に、binフォルダーをPATH
に追加します。
これらのコマンドをエイリアスとして定義できます(例:.bash_profile
などのrcファイルに追加):
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
次に、big
またはbig-files
を実行すると思われるフォルダー内で実行します(例:/home
)。