私は愚かにも、かなり深いツリー (4 つのフォルダーの深さ) を作成し、リーフ フォルダーに大量の小さなファイル (サイズが 200 KB から 1 MB 程度の 100 万を超えるファイル) を含めました。合計すると、ファイル数は 80 GB を超えます。これは、Hetzner 内で実行されている Ubuntu Server 14.04 ボックスの /tmp/ ディレクトリに作成されました (これに接続する方法を見つけるために関連しています)。
記憶によれば、「find . | wc -l」の実行には 12 時間以上かかりました。
その後、サーバーを再起動する必要がありました。過去数週間に渡ってサーバーは問題なく複数回再起動されているため、通常は問題にはなりません。構成の変更は行われておらず、追加のソフトウェアもインストールされていません。
ただし、この場合はオンラインに戻りません。ボックスに ping を送信できますが、オンラインに戻るはずのポートに ssh または接続できません。
問題は、起動時に tmp をマウントしてクリアするスクリプト /etc/init/mounted-tmp.conf がファイルのクリアに苦労し、ボックスが init 起動フェーズで停止してしまうことにあると思われます。
このプロセスを高速化する方法はないのでしょうか? 何らかの方法で tmp clean を無効にできれば、rsync トリックを使用してフォルダーをクリーンアップできることはわかっていますが、これを行う方法がまったくわかりません。
答え1
解決策を見つけました。
ヘッツァーが提供するレスキューシステムを使用してマシンを起動したhttp://wiki.hetzner.de/index.php/Hetzner_Rescue-System/en
次にファイルシステムをマウントし、ここからのヒントを使用しましたhttps://unix.stackexchange.com/questions/37329/thousands-of-files を含む大規模なディレクトリを効率的に削除するより効率的にファイルを削除する方法について説明します。
再起動したらすべて正常になりました。
答え2
あなたは自分の質問に答えたようですが、私の意見を述べさせてください。
シングル ユーザー モードで起動するとどうなるでしょうか? grub にアクセスできますか? 起動時に、起動パラメータを編集して「single」オプションを含め、ルート コマンド プロンプトに直接起動します。そこからファイルをクリーンアップできます。