はじめに
はじめまして。yanbaruと申します。
普段は私でもできるシリーズを細々と書いています。
今回は
本番環境などでやらかしちゃった人 Advent Calendar 2025の24日目の記事を書かせていただきます。
研究データが入ってるPCをふっ飛ばした!
研究発表まであと2週間前という不足しているデータを取りながら発表準備もしている大詰めのタイミングで発生した2回PCを破壊して研究データが消えかけた話です。
何をしてしまった?
一回目はrsyncをしていたときに、ファイルパスの指定を間違ってしまいOSの大部分を別のOSデータで置き換えてしまった(と思っています)。
二回目に関しては悪魔のコマンドsudo rm -rf /*を実行してしまいました。
1回目は何故してしまった?
これは研究用PC(=以下PC)に複数のOSデータをそのまま保管していてしており、別のSSDに移動させようとしている際に発生してしまったと思います。
(完全な復旧ができなくこの時のログ等がまったくなく朧げな記憶で多分最後に実行したのがこれだったと思うのでこのような書き方をしています…)
こちらに関しては完全に完了する前にエラーと警告が大量に出て/homeディレクトリや設定を加えたディレクトリに到達する前にCtl +cで終了したため、研究データは無事でしたが、OSが破壊されてしまい、二度と起動ができませんでした。
急いでインストールメディアを作成して、インストールメディア上のターミナルから研究データが保管されているファイルを探してすべて別のUSBにコピーして救出しました。
2回目は何故してしまった?
1回目のミスがあったため、./*のようなディレクトリ指定を行わずWORK_DIR/*や$PWD/*などを使って
./*でピリオドの打ちミスをした場合にまたPCデータを消さないように変数を使って補完をしてrmコマンドやrsyncコマンドを使用していました。
しかし、間違ってsudo rm -rf $pwd/*で実行をしてしまいました。
これがどう補完されるかというと
$ echo $pwd
何も補完されず空白が返されます。
これにより本当にsudo rm -rf /*が実行されてしまいすべてが消されていきました。
奇跡的に1回目のやらかしがあったため、研究データ等のデータはあったため復旧して事なきを得ました。
その「やらかし」を起こさないために次どうすればいか
1回目に関しては、他のOSデータは特にtar.gzなどの形でアーカイブや圧縮をして間違って/配置してしまってもコピーされるだけで済むようにするべきでした。
2回目に関しては補完に頼らず1つはディレクトリ名を入力して../WORK_DIR/*のように
間違えたらエラーが出るような実行にするべきだと思います。
そもそもヒューマンエラーで消える前提のファイル管理をするべきだった
上記はコマンドのやらかしを回避するための知見ですが、そもそもとしてそれ以外にも急にデータが消えることは0ではありません。私はまだ2週間前でしたが前日に消える可能性も大いにあります。
そのため、ソースコードや論文等はGitHubへ、測定データやPCデータ全体のスナップショットをクラウドへ定期的に保存をして消えてもすぐに復旧できるようにしておくべきでした。
社会人の方々は何を当たり前のことをと思っているかと思いますが、こういった経験をして当たり前にしていくと思うので、学生のうちに経験して復旧できたのは良かったなと思います。
終わりに
ご拝読ありがとうございました。
論文はまだ執筆中なので、消えないよう定期的にバックアップを取って作成中です。