この記事は、大国魂(ITブログ) Advent Calendar 2019 の22日目です。
記事概要
本番環境でやらかしちゃった人 Advent Calendar 2019 で教訓になる記事が多く、
データ削除系に関するやらかし防止のための自分の考えをまとめておきます。
(まとめておこうと思った)
想定環境
本番環境など、自分のローカル環境ではないサーバ環境全般が対象です。
全体として
その環境でバックアップがどのように構成されているかを知ることが大事です。
オンプレ環境の場合、ストレージのスナップショットで個別のファイル抽出が可能か、
NetBackup/Veeam といったバックアップ製品でどのファイルをどのような周期でバックアップしているか、といった内容になります。
クラウド環境であれば、上記のような仕組みが何かで実装されているのか、といった形になります。
DBも同様に、どのようにバックアップを取得して、一部のテーブルだけであればいつのデータでリカバリ可能かを抑えておくと良いでしょう。
ハードウェアに関しても、いつのコンフィグバックアップが取得されていて、復旧時はどのように戻せるのかという点は抑えておきましょう。
これらに加えて、ファームウェアやOSバージョンの戻しも重要ですね
(教訓になる良い記事でした 1セグメント全断の土曜日 )
これらのことを知っておくと、消して二度と取り戻せないファイルか否かの判断がつき、
二度と取り戻すことができないファイルに関しては慎重に扱おうという気持ちが生まれることでしょう。
(とはいえ、バックアップアップがあるからと言って安易なファイル削除をされても困るとは思います)
また、これ絶対事故りそうだよね、ここバックアップ無いのヤバイのでは?みたいな気付きを得られれば、改善提案に繋がっていくのもよいかなと思います。
Linux 編
rm -rf はなるべく使用しないことを心がける
これに尽きますね。
rm -rf は実行対象のディレクトリを誤ることで、大量ファイルの誤削除を引き起こす可能性があります。
特にシェルスクリプトで rm -rf を用いてファイル削除をする場合には十分な注意が必要です。
cron にて実行するのであれば、rm -rf で削除される対象ファイルのみリストに表示するような書き換えを行ない、
数日 cron で(手動実行ではなく)動作させて、削除対象ファイルに問題ないことを確認した上でリリースしましょう(戒め)
手動オペレーション時も同様に、ls -ltrR などで削除対象ファイル一覧を取得して、
本当に問題ないことを確認してから、ls -ltrR と同じパスをコピペして削除するのが良いのかなと思います。
(物凄く堅実な削除は、リストからファイルを1つずつ rm で削除ですが、それはそれでつらい運用になると思います)
Windows 編
shitf + delete によるごみ箱を経由しない削除はしないように心がける
これに尽きますね。
と書いて、PowerShell の場合はここを意識してなかったなぁと思いいたりしました。
PowerShell でファイルやフォルダをごみ箱に入れる という記事もあるので、後ほど試してみようと思います。