誤ってrm -rf /を実行しました

誤ってrm -rf /を実行しました

私は何かを削除することを自動化するbashスクリプトを書いていました。私は次のコードを使いましたrm -rf $パス/*

誤ってパス変数を渡さずにスクリプトを実行しましたが、パス変数がnullであるため、実行されたコマンドはrm -rf /* sudo として、150 を超える Web サイトをホストしていたサーバー上のすべてが削除されました。1 週間前のバックアップがあります。Linux は非常に大きいため、この状況に対する回避策がいくつかあるはずです。

答え1

これには近道はありません。Linux が強力なのは、すべてを削除するといった愚かなことも含めて、何でもできるからです。

バックアップがあるので幸運です。次のタスクは、新しいサーバーをインストールして、バックアップからデータを回復することです。データ回復ソフトウェアを使用して一部のデータを回復することは可能ですが、バックアップ上のデータの整合性ははるかに優れています。ただし、古いインストールからのデータが必要になる可能性がある場合は、同じディスクを再利用せず、新しいディスクを購入する必要があります。

これはビジネスに影響するため、顧客との賢明なコミュニケーションが重要です。何も隠そうとしないでください。人為的ミスによりダウンタイムが発生することを正直に伝え、バックアップがあるため心配する必要はないと伝えます。もちろん、昨晩のものであればもっとよかったでしょう。インシデント発生後、バックアップ計画を修正できます。

また、スクリプトを作成するときは、変数を に渡す前に必ず検証してください。変数の末尾にスペースがある場合など、同じ結果を引き起こすrm -rf他のエラーが発生している可能性もあります。$pathrm -rf /some/directory /*

答え2

それ以上何も触っていない場合は、testdisc/photorec を使用して大量のデータを回復できる可能性が高くなりますが、これは面白くありません。ファイルを削除したハードドライブをいじらないようにしてください。ディスクに何かを書き込むたびに古いデータが上書きされてしまうからです。rm コマンドは通常、本の目次を消去してページはそのまま残すのと同じように、ドライブ上のファイルの場所の情報だけを削除します。したがって、以前のファイルはシステムの空き領域になります。

リカバリ用に別々にマウントし、書き込みはしないでください。多くのファイルをリカバリするには、フォトレック/テストディスクphotorec という名前に惑わされないでください。実際には写真だけでなく、さまざまなファイルタイプを復元できます。ただし、多くの場合、復元されるのはデータだけで、ファイル名は失われます。そのため、創造力を発揮する必要があります。

いくつかの例を見ることができますここ

関連情報