web-dev-qa-db-ja.com

/ proc / kcoreが大きすぎる

DDoS攻撃を受けた後、何らかの理由で/proc/kcoreが非常に大きいため、小さなPHPクラスを使用して、現在のディスク容量と使用されている数を確認します。

以下が表示されます。

Total Disk Space: 39.2 GB
Used Disk Space: 98 GB
Free Disk Space: 811.6 MB

私の質問:/proc/kcoreファイルを削除しても安全ですか?または、通常のサイズにするための解決策があります。

/proc/kcoreのファイルサイズは140.737.486.266.368バイトです

DigitalOceanでサーバーをホストしました。

3
Love2Code

/ procの何も「本物」ではありません。これは、カーネルの内部を見ることができる仮想ファイルシステムです。これらのファイルを読み書きするときは、実際にディスク上にファイルを作成するのではなく、カーネルと直接話します。 man procから:

/ proc/kcore

このファイルはシステムの物理メモリを表し、ELFコアファイル形式で保存されます。この擬似ファイルと、ストリップされていないカーネル(/ usr/src/linux/vmlinux)バイナリを使用すると、GDBを使用して、カーネルデータ構造の現在の状態を調べることができます。

ファイルの全長は、物理メモリ(RAM)のサイズに4KBを加えたものです。

最後の行がどの程度真実かはわかりません。私のラップトップでは/ proc/kcoreが128TBと表示されます!カーネルなどが使用するアドレス空間のサイズである可能性が高くなります。

とにかく、より多くのディスク容量が必要な場合は、実際のファイルシステムを調べる必要があります。 df -hの出力を見て、スペースが不足している場所を確認してください。その後、duコマンドを使用して、実際にスペースが使用されている場所をより詳細に確認することもできます。

興味深いことに、du -h /proc/kcoreを実行すると、0と表示されます。 :)

9
Andrew McCarthy