はじめまして。 マネーフォワードのアグリ村で、アグリゲーション開発エンジニアをしています盛田です。
今回のエンジニアブログは、エンジニアなら実行時に一瞬躊躇する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で行うときの設定についてご紹介します。
「リモートコマンド」を設定するとセッションを開いたときに実行されます。
それぞれ下記コマンドを設定します。 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/