duとquotaの結果が一致しないのはなぜですか?


8

ルートアクセス権がないシステムでディスククォータを超えました。古いファイルを削除しようとしましたが、まだ終わっています。私はdu自分のスペースをすべて使い果たしている場所を見つけるためにランニングを試みましたが、それは私がほとんど使っていないことを報告しています。

から得られる結果 quota

   /home/1234$ quota -s
   Disk quotas for user 1234 (uid 1234): 
        Filesystem   space   quota   limit   grace   files   quota   limit   grace
       cslab:/home   4519M*  4096M   5120M   09:47    6155       0       0 

から du

   /home/1234$ du -mad 1
   ...
   936     total

なぜquota.9GB duしかカウントしないのに4.5GBを使用しているのかわかりません。自分が所有しているファイルも確認したところ、/tmp50MB相当のファイルがありました。他の3.5 GBのファイルはどこにありますか?クォータシステムが間違っていて、リセットが必要な可能性はありますか?


ディスクの使用状況を測定する方法がたくさんあるのかどうかを確認してください助けます。これはNFS経由ですか?いくつかのキャッシュがあるかもしれません。
Gilles 'SO-邪悪なこと

回答:


2

一部のプロセスで開いたままになっているファイルがあると思います。あなたが使用してそれらをリストしようとすることができます、

lsof | grep username | grep deleted

より良いバージョンは使用することです、

lsof +L1 | grep username

しかし、時には間の出力の不一致があるかもしれませんduし、quotaこの中で説明されているリンク。リンクからの抜粋、

Unixでは、duコマンドとquotaコマンドが異なる値を報告する場合があります。この不一致の理由は、ファイルシステムを通過し、クォータをチェックし、使用状況テーブルを更新するプロセスが特定の時間にのみ実行されるためです。したがって、クォータチェックの間に、quota -vコマンドが誤ったディスク使用量を報告する期間があります。ファイルのサイズに関する最も正確な情報を得るには、duコマンドを使用します。


私はこれを試しましたが、開いている削除済みファイルはありません。
ブランドンクレメンツ

@BrandonClements、このリンクは役に立ちますか?
Ramesh 2014

リンクは役に立ちました。割り当てが定期的に更新されるだけだとは思いませんでした。私はこれが本当に私の問題であるかどうかを確認する必要がありますが、そうだと思います。リンクと簡単な説明を回答に移動してください。
Brandon Clements

@BrandonClements、更新されました。さらに情報が必要な場合はお知らせください!
Ramesh 2014

一晩で直ったようです。この回答を読んだ他の人にとっては、小さなファイルを削除すると私の割り当て量にすぐに影響が出るように見えるので、これが事実であるかどうかはわかりませんでした。それはそうであるように見えます。
Brandon Clements

2

quota 実際にファイルが占有しているブロックをファイルシステムに問い合わせることで機能します。

du ファイルのディレクトリを再帰的にスキャンして機能します。

2つの方法では異なる結果が得られる可能性があります。たとえば、ファイルを「削除」すると、ディレクトリを一覧表示したときにそのファイルが表示されなくなります。ただし、ディスク上の最後のファイルハンドルが閉じられるまで、ディスク上のブロックは実際には解放されません。その場合、ファイルはには表示されませんがdu、割り当て量にはカウントされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.