やらかしちゃったこと

最近打ち合わせとか、ルーティンワークばっかりで技術ねたがありません。
知り合いのブログで開発環境のOracleテーブルをdropしちゃったよというエントリ(こんなに軽くないけど)があったので、私も過去にあーやったなぁって経験談をいくつか。

rm *

シェルで1文字のファイルを消そうとして

$ rm *

なんてことは一年生でもないとやりませんよ。えぇ。やってもrootじゃないとたいしたことない。
でもまだMakefileをちゃんと作っていない開発環境でこんなことをやったことはある。

$ rm *.o 

とタイプしようとして

$ rm *>o

だってさ>と.(ピリオド)って、同じキーじゃない。それに*でシフトアップして、左指の小指がshiftキーから離れるより先に右手の薬指がタイプしちゃうんですよ(言い訳)。
これでごっそり開発環境を消してしまって以来、しばらくはrmをmvにaliasしてゴミ箱ファイルに移すようにしていました。

rm *その2

大昔、今みたいにマシンが早くなかった頃、rm *をタイプしてしまったことがあります。リターンキーを叩いた瞬間、ディスクがガーと回転する音。何か良くないことが起きていることを直感的に悟り、ctrl-Cを連打。カレントディレクトリを見てもファイルは消えていない模様。historyを見るとやっぱり直前にはrm *をタイプしています。おそらくですが、カレントディレクトリにたくさんファイルがあったためシェルが*を展開するのにある程度時間がかかったのではないかと。今みたいに早いマシンだとありえないですね。

バックアップのつもりが

Oracleのバックアップを実施。手動でバックアップモードに移行、シェルプロンプトからtarをタイプしてデータファイルをテープにバックアップ。丁度昼食時間だったのでご飯を食べてから帰ってきたら、DBが止まっていると連絡が。おかしいな、なにかやったかなと確認するとやはり動作していない。sqlplusは動くけど、テーブルが一切見えません。ちょっと冷や汗を浮かべながらhistoryを確認すると、やってました。

$ tar -cvf /dev/rmt/0n datafile

とするべきところを

$ tar -xvf /dev/rmt/0n datafile

うわー、ファイル上書きしてるんじゃない。テープを使いまわししてるのが良くなかった。ってそんな問題じゃない。
幸いにして、上書きしたのが前回のバックアップだったこと、アーカイブredoログファイルが全部無事だったのでデータの損失はありませんでした。

ほかにもいろいろやらかしていますが、まぁやらかした分だけ経験値になるってことで。