rm -rf
は DROP に似た Bash コマンドの 1 つです。SQL コマンド。データベース テーブルのレプリカ (バックアップ) がない場合、すべてのデータが失われます。
rm -rf は、ルート権限なしで呼び出すと、ユーザーがアクセスできるすべてのフォルダを削除するコマンドです。 root 権限で起動すると、ハード ドライブが消去されます。
これまで、このコードを本番サーバーで実行するというミスを犯したことはありませんが、すべての人がそれほど幸運だったわけではありません。ここにいくつかの興味深い rm -rf ストーリーがあります。
1. Thomas と CLI ベースのゴミ箱プログラム
Thomas は大学の Unix ラボで中期プロジェクトに取り組んでおり、そのためにを使用して隣接するラボのサーバーに接続していました。 PuTTY + RealVNC.
彼のプロジェクトは簡単でした: ファイル パスのリストを取得し、それらを~/.trash ディレクトリ。次に、「ゴミ箱を空にする
」を実行すると、ディレクトリで rmを実行できます。彼は最初の部分を完了し、空のコマンドを完了していました.
どういうわけか、彼は削除パスを /
のままにする間違った変数を設定し、sudo アクセス権を持っていました。彼が最初にコードを実行したときは何も起こりませんでしたが、その直後にグリッチが発生し、静的に表示され始めました。 Ctrl + C は役に立ちませんでした。次に、モニターがブランクになり、切断されました。
彼のコードは sudo rm-rf /
を実行し、サーバー上のすべてのデータを消去しました。 Thomas にとって幸運なことに、彼は部門のテスト サーバーで作業しており、バックアップ ディスクからデータを復元することができました。彼は入学許可を失いませんでした。
2.バックアップ セッション中のクリーン ワイプ
Alex は、スクリプトを使用してマシンをバックアップする会社のネットワーク管理者でした。ある運命的な Friday で、彼はテキスト rm -rf ${DIRECTERY}/
でスクリプトをアップグレードしました。 の代わりに
rm -rf ${DIRECTORY}/ – コマンドを単に
rm-rf に更新する ${DIRECTERY} が空の文字列になったため。
その夜遅くにバックアップ セッションが開始され、Alex が気付く前に、ネットワーク上のすべてのマシンが完全に消去されました!幸いなことに、同社は 1 時間ごとにファイルをバックアップしているため、大きな被害はありませんでした。とはいえ、忙しい週末でした。バックアップ ジョブによってシステムが完全に消去されるというのは皮肉なことですよね?
3.自動再帰クリーナー
ある時 Eric はファイル サーバーで作業していて、毎週かそこらでいくつかのファイルを自動的にクリーンアップしたいと考えていました。彼は、比較的古いファイルのみを削除することを目的として、自分の行を計画し、テストしました。彼の作業は単一のディレクトリ内にあったため、何か問題が発生する可能性はないと考えていました。まあ、彼は後で自分の推測が間違っていたことに気づきました.
彼は次のコマンドを実行し、うまくいきました。次に、彼は手動で crontab に行を追加しましたが、それは誤って .
を / に置き換えたときでした。 .
探す 。 -type f -name-ctime -60 -exec rm -rf {} \;
早送りして 1 週間後、かなりの数のファイルがなくなっていました。さらに悪いことに、それらはランダムなパターンで削除されたため、彼は会社がハッキングされていると考え、コードチェックを実行して自分がハッカーであることに気づきました.
幸いなことに、彼は毎日外部バックアップを保持していたので、間違いを修正することができました。その日以来、彼は管理者権限で実行するコマンドに細心の注意を払ってきたに違いありません。
上記のストーリーに存在する 2 つの主なポイントは、1. コードとその結果として考えられる影響を常に再確認すること、および 2. バックアップを常に可能な限り最新の状態に保つことです。それらは重宝します。
何かおかしな話を知っていますか? rm -rf 経験や他の場所からの話はありますか?コメント欄で共有してください。