本番環境で全削除コマンド!

はじめまして。
マネーフォワードのアグリ村で、アグリゲーション開発エンジニアをしています盛田です。

今回のエンジニアブログは、エンジニアなら実行時に一瞬躊躇するrmコマンドについてのネタを書かせていただきます。
 

rm -rf /*

このコマンドをうっかり、しかも本番サーバで実行してしまったら・・・と考えるとゾッとしますよね。

私は若いころ一度これで重要なフォルダを消してしまった経験があります。
大事には至らなかったのですがとても怖かった思い出です。

よくある対策として
・mvコマンドを使ってtrashフォルダに移動して定期的にcronなどで削除
・引数は絶対パスにする
などなどいくつかあげられますが・・・

それでも、過去履歴から誤ったコマンドをたたいてしまったり
(./logDelete.shを実行するつもりが./dbDelete.shを実行してしまった)

(reverse-i-search)`Delete': ./dbDelete.sh
13 delete
done.

 
変なテキストを誤ってペーストしてしまって

zVraethRsAS/uB3oeuOwpSRiQKhRiUiWcRn8GuR8S8cErnXS5kpN3L6LSHEXk3oe
abvFZ5h/vp/z6QHxOBY5SSiOLQw2k5UTj3HgTBFDdhBLXrPLM0eaSl76VwhP/ve0
rm *  lTkNspC+zUX/DEfKRdMr/L4mu+1LAPj9ufcJaBXjrXs9CRF5jGNehs8Py
bhZQysyn9950RSILZ7p2tHUo6qVTbTEj3NqwO3p5IVwn3MwLqvK5wlo+pwPnUM5c

 
大事なファイルが消えてしまったり

history | grep rm
11  rm *  lTkNspC+zUX/DEfKRdMr/L4mu+1LAPj9ufcJaBXjrXs9CRF5jGNehs8Py

rmだけでなく危険なコマンドが実行されてしまう危険はいろいろな所に潜んでいます。
 
 

不要なコマンドを実行しないために

今回はログ監視やsql実行などをputtyで行うときの設定についてご紹介します。

sql用とlog監視用のセッションを作成します。
1

「リモートコマンド」を設定するとセッションを開いたときに実行されます。
2

それぞれ下記コマンドを設定します。
logセッション

tail -F -n 100  $LOG/log

sqlセッション

mysql -u readonly_db -p -h localhost prod_database

sqlセッションを開くと読み取り専用sqlへのログイン画面が開きます。

Enter password:

使い終わった後はquitやCtrl + Cでputtyごと閉じるので安心です。

(host) [read_db]>quit

logセッションを開くとtailされたログ画面が開きます。
こちらもCtrl + Cでputtyごと閉じるので安心です。
 
 

最後に

マネーフォワードでは、開発効率向上の為にどんどん新しい事にチャレンジするようなエンジニアを募集しています!
みなさまのご応募お待ちしております!

マネーフォワード採用サイト
https://recruit.moneyforward.com/

Wantedly
https://www.wantedly.com/companies/moneyforward

Pocket