2016年4月16日土曜日

rm -rf /というミス

非常に興味深い記事がありました。

レンタルサーバ業者が、バックアップ含め、全てのデータを削除してしまったというお話です。
http://business.newsln.jp/news/201604151116100000.html

とても簡単に説明すると「今パソコンに認識されている全ディスクの内容を、システムもデータも何もかもすべて強制的に削除する」というコマンドですね。
もう少し詳しい説明は以下に。
http://ivystar.jp/os/linux/魔のコマンド「rm-rf-」を唱えてしまったとは/

私もミスでやったことがあり、復旧できるはずもなく泣く泣く再度構築したのを覚えています。バックアップデータは、物理的に「つなげていない」ディスクに入れているのでだいぶマシでしたが…。

とりあえず、普段、自ら手作業でコマンドを打つ場合は防ぐ手段も多々ありますが
http://rcmdnk.github.io/blog/2013/04/23/computer-bash-linux-mac/
まぁ、スクリプト中に書いているということは、こういう手段はたいてい邪魔なだけなので、無視するように書いているでしょうね。

私は影響の大きいサーバをコマンドでいじることがままありますが、その時のrmコマンドほど怖いものはありません。find(検索)からrm(削除)につなげる場合はもはや危険しか感じないので、一度find結果をテキストに落とし、これをrmに食わせる…つまり、
$ find (条件) -print > delete.lst
$ cat delete.lst | rm
などとします。delete.lstの段階で精査できるからです。

が、私のケースは手作業中。問題なのはスクリプトです。

スクリプトを実行させる場合、まずは壊れても影響のない環境を、手間でも構築して、そこでテストしなければなりません。冒頭記事はこの部分を省いていたのでしょうし、当然その部分が反省の筆頭になることでしょう。せっかく仮想環境が増えているのですから、有効利用したいものです。

「人のふり見て…」「他山の石」だけれども、自分のコマンドが与えうる影響の大きさを認識してコマンドを打っていかなければ、と思います。

プライベートでは辛いかも知れないけれど、仕事があってよかった。これだけの責任感がある仕事を任せてもらえているということがあるから、私はまだ生きていられる。

0 件のコメント: