170
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

本番環境でやらかしちゃった人Advent Calendar 2021

Day 24

半角スペースの有無だけでサーバーをぶっ壊しそうになった話

Last updated at Posted at 2021-12-23

本記事は「本番環境でやらかしちゃった人 Advent Calendar 2021」24日目となります。

前提事項

事故を起こしたのは確か6年くらい前
サーバーのOSは確かCentOS6
諸事情でワンオペだった
本番環境を操作するPCと手順書を表示するPCが別々
手順書は本番操作用PCに入れることができなかった。つまりすべて手入力。

当時の記憶を元にした再現であり多少盛ってるので細かいツッコミは勘弁してください

何をしてたか

~~~本番環境作業中~~~

(手順書ナガメー)

よし、次はファイルの移動か
mvコマンド入力してカチャカチャカチャ…ッターン

mv: cannot move /bin/ac to '/home/user/work_dir': Permission denied
mv: cannot move /bin/aconnet to '/home/user/work_dir': Permission denied
mv: cannot move /bin/addr2line to '/home/user/work_dir': Permission denied
mv: cannot move /bin/alias to '/home/user/work_dir': Permission denied
mv: cannot move /bin/alsaloop to '/home/user/work_dir': Permission denied
mv: cannot move /bin/alsamixer to '/home/user/work_dir': Permission denied
mv: cannot move /bin/amidi to '/home/user/work_dir': Permission denied
mv: cannot move /bin/amixer to '/home/user/work_dir': Permission denied
mv: cannot move /bin/amuFormat.sh to '/home/user/work_dir': Permission denied
mv: cannot move /bin/analog to '/home/user/work_dir': Permission denied
mv: cannot move /bin/aplay to '/home/user/work_dir': Permission denied
mv: cannot move /bin/aplaymidi to '/home/user/work_dir': Permission denied
mv: cannot move /bin/appstream-compose to '/home/user/work_dir': Permission denied

...以下省略

!!!!!!!!?????????????????????????

えっえっ何これやべぇ止めなきゃ!Ctrl+C ポチー

何が起きたのか

// 実行したかったコマンド
# mv /tmp/logfile.zip /home/user/work_dir

// 実際に実行したコマンド
# mv / tmp/logfile.zip /home/user/work_dir

何が違うかおわかりでしょうか

実行したかったのは単純なファイル移動コマンドでしたが
ファイルの先頭の /tmp/logfile.zip の間に半角スペースが混ざっていました

これにより本来なら/tmp/logfile.zip/home/user/work_dirに移動するはずが
/配下全てとカレントのtmp/logfile.zip/home/user/work_dirに移動するという
rm -rf /*に匹敵する**即死コマンドに変貌**したわけです

その後どうした

まずは移動先となった/home/user/work_dirの中を確認
不幸中の幸いとしてrootで作業しておらずsudoも付けず、すぐ処理を止めたことにより
移動されてしまったファイルは無かった(確か)ので首の皮は繋がっていました

一応作業ログを見返しやばそうな出力は無かったのでそのまま作業を再開しました。
その後特に問題は起きていませんでした。

なぜ惨劇は起きかけたか

いうまでもなくワンオペでクロスチェックも何もあったものじゃなかった環境であり
長文コマンドを全て手打ちせざるを得ない環境だったので起きるべくして起きた事象だと思います
ただし当時は人がいなくてペアとなる人員を用意できなかったプロジェクトだったのお察しでしょう

Q. シェルスクリプトとか用意してなかったの?
A. 用意することにより手順が変わるため手順書の改版と検証が必要となり、その工数が認められるような雰囲気じゃなかったため
当時は私も技術力があるとは言えなかったので説得しきる材料もありませんでした

二度と惨劇を起こさないためにどうしたのか

正直このタイプの凡ミスはどうしたって無くならないような気もするんですが
今回は手順書を横目で見ながら長いコマンドを手打ちしていたことがミスを誘発した一因と思っています

これに限らず、当時の手順書は実行するコマンドが多く長いものもあったので
実行するPC内に手順書を置く許可を貰い、コピー&ペーストでコマンドを実行させてもらえるように交渉しました
(サーバーへ接続するのは専用のPCからのみだったため)

最後に

筆者はこの事故の影響でmvコマンドがトラウマになりました
今でも可能ならcpしてからrmするという手間を挟んでファイル移動を行っています
あとrootもどうしようもない限り使うのは辞めとこうとも

(追記)
何も変わってないやんという感じですが
cpというクッションを挟むことによって慎重に確認を行うための個人的な儀式です
さすがに何年も経った今はこんなこと起こさないはずだけどミスると一発アウトはどうしても怖い

170
48
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
170
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?