私のUNIXサーバーの1つにスペースの問題があります。スペース使用率を確認するために、次のコマンドを実行しています。ただし、このコマンドは非常に遅く、結果を提供するのに数時間かかります。
du -sg * | sort -nr >> /my/home/dir/space_20150303
スペース利用率を確認するより良い方法はありますか?
答え1
これは驚くべきことではありません。システムがすでにユーザーを追跡していない限り、ディスク使用量コマンドはすべてのディレクトリー項目を繰り返し、サイズを読み取り、合計を計算する必要があります。
ファイルシステムがリモートでマウントされている場合(NFS、Samba...)、du
可能であれば、サーバーで実行する方がリモートクライアントで実行するよりもはるかに高速です。
すべてのファイルについて知りたいので、ディスク使用量を追跡し、すぐにフィードバックを受ける方法があります。ただし、これはシステム管理者が有効にする必要があります。この道はシェア。制限を設定せずにクォータを有効にできます。これにより、各ユーザーが使用しているスペースを追跡し続けることができます。
答え2
df
ファイルシステムのディスク領域使用量の確認
df -a
すべてのファイルシステムのディスクスペース使用量に関する情報を表示します。
df -h
人間が読める形式のディスク領域使用量とファイルシステム情報をGB単位で表示します。
df -hT /home
/home
ファイルシステム情報の表示
答え3
多くの場合、予期しない量のスペースを占める大容量ファイルがあります。この情報を見つけるのは速く、通常1〜2分かかります。
これらを探す
cd (mount point)
find . -xdev -size +20000 -ls > /tmp/bigfiles
マウントポイントは、ルートファイルシステムの/または興味のある場合は/homeにすることができます。たとえば、CD /home
-xdev は、いっぱいのファイルシステムにのみ関心があるため、マウントポイントを別のファイルシステムに渡さないことを意味します。
+20000 は、20000 x 512 バイトのブロックより大きいファイルまたはディレクトリのみを検索することを意味します。たとえば、20000は約10MBです。
-ls は、ls -ld と同様に、ファイルまたはディレクトリ情報のリストを意味します。
私は通常、出力を/tmp/bigfilesに送信して各問題を解決した後、find cmdを再実行する必要なしに次の問題を見ることができます。
find cmd の出力を表示するには、less /tmp/bigfiles を使用します。