私は、ユーザごとのファイルシステムメモリの使用量を見つけるために必要な小さなツールを書いています。ユーザーごとのディスクスペース使用量を見つける方法は?
ファイルシステムの使用率が一定のしきい値を超えている場合、私はいくつかのクリーンアップ活動を行う必要があります。私が使用できるシステムコールとは何ですか?ユーザーごとのメモリ使用量を見つけることができますか?
私は、ユーザごとのファイルシステムメモリの使用量を見つけるために必要な小さなツールを書いています。ユーザーごとのディスクスペース使用量を見つける方法は?
ファイルシステムの使用率が一定のしきい値を超えている場合、私はいくつかのクリーンアップ活動を行う必要があります。私が使用できるシステムコールとは何ですか?ユーザーごとのメモリ使用量を見つけることができますか?
おそらくディスククォータ(一部ではありますが、すべてではないファイルシステムでサポートされています)に興味があります。低レベルのシステムコールはquotactl(2)です。おそらく既存のツールquota(1)とquotacheck
、edquota
、warnquota
、quotaon
などを使用するとよいかもしれません。
特定のプロセスで使用されているメモリを知りたい場合は、getrusage(2)を参照してください。あなた慎重popen(3)スルー場合もPID 1234読むため/proc/self/
または/proc/1234
下の疑似ファイルによりおよそproc(5)(例えば/proc/self/maps
または/proc/1234/smaps
など)
もちろんを読んで、またdu(1)とdf(1)コマンドを考える(おそらくそれらを呼び出すことができます彼らの出力を取得したい)。何らかの理由でファイルツリーを再帰的にスキャンしたい場合(例えば、du
のような累積使用サイズをカウントする場合)、nftw(3)関数の使用を検討してください。 stat(2)およびstatfs(2) syscallsも参照してください。
あなたのプログラムがそれを調べたり質問している間に、他のプロセスがファイルシステムに書き込むことができます(しばしば)。
私の問題は、私が 'quota'を実行すると、私は'操作が許可されていない 'を取得します。それはなぜですか?たぶん、それは私が(そして興味を持っている)私の中でのみ、すべてのユーザーのクォータを見ようとしているからです。 –
単純なアプローチは、それをソートするには
du -shc /home/*
次のようになります。
du -smc /home/* | sort -n
ユーザーごとに郵送ディスクの使用状況レポートのオプションを持っているよく知られたPerlスクリプトでもあります:durep
タグはなぜpthreadsですか? –
duのソースを見てください。 –
メモリ使用量ですか?ディスク!=メモリ – sehe