背景
本番環境とローカル環境を同じターミナルで接続し、作業していたらヒヤリハットに遭遇したのでご報告
現象
-
ステージングサーバの挙動が気になったので、ログを調査していた。
-
その際に、iTermで画面分割(Command + D)し、複数台あるステージングサーバにsshで接続して、iTerm2のBroadcast機能で、同時にコマンドを叩いていた。
-
急遽ローカル環境で作業する必要が起きたのでiTermで別タブを開き(Command + T)、
ステージングサーバに接続したまま、ローカルで作業開始した -
なんかgitの挙動が変になった。ブランチを切り替えようとしたらlockファイルがあるやら言われる
-
排他ロックされているようなので、なんでかな?と調べてみると、全てのタブに対して同一のコマンドを流していた
-
ステージングサーバで意図せぬコマンドを叩いていた
原因
上記の「2」で
Command+option+Iとし、「Broadcast Input to All Panes in Current Tab」とするところを、Command+shift+Iとし、「Broadcast Input to All Panes in All Tab」としていた。
Command+option+I ・・・ 現在のタブにある全ての窓に対して同一コマンドを送る
Command+shift+I ・・・ 全てのタブにある全ての窓に対して同一コマンドを送る
# 所感
幸いにもステージングサーバだったのと、叩いたコマンドが「git chekuout」だったので特にサーバに影響はなかった。
が、ツールのショートカットにおける、オプションとシフトの違いなど普段無意識で実行しているので、視覚上違和感がなければ気づけないので、最悪本番データを削除する可能性もあった。
対策
iTermにはこの手のミスを予期したかのような機能があるので
「Show Background Pattern Indicator」にチェックを入れておく。
そうすると、以下のようにBroadcast中のターミナルは視覚上はっきり区別がつくようになる。
# 結論
こういったどうでもよい現象で、この問題に気付けたのはよかった。
また、ヒヤリハットが起きたらチャンスと思い、必ず対策を検討しておきたいものですね。