今日の夕方
別の用事をしながら使い捨てのシェルスクリプトを書いていました。
#!/bin/bash
TARGET_DIR=/target/dir
## 中略
rm -rf ${TARGET_DI}/* # あっ
## 略
やりました。やってしまった。し、しんだ~~~ほあああああああ~~~~。
upicoとかtwimageとかのアプリ実行用ユーザで作業していたので、rootではなかったのが救いですが、ホームディレクトリの中身は全部吹っ飛びました。Ctrl+Cしたけど間に合わなかった。アプリ自体は/var配下にあるのですが、そちらは無事でした。
各アプリはホームディレクトリの中に設定値を持っているため、アプリを再起動すると動かなくなります。なお、listは他のアプリとちょっと別の動かし方をしていて、毎回プロセスを生成しているため、即死しました。
どうしたか
ファイルシステムがxfsなのですが、xfsでファイルを復元する方法がなさそうなので、諦めて自力でファイルを修復しました。.sshと.vimrcとfishの設定飛んだのが痛い。
どうすべきだったか
今回は自分のサーバなので良かったですが、これが違うサーバだったら…と思うとぞっとします。以下反省点。
- 使い捨てだからと適当にやらずに
set -eu
すべきだった。 - 他の用事しながらファイル削除や更新が伴う作業をしない
- レビュー大事