Web系や機械学習を勉強中。医療におけるIT活用に興味があります。スナップショットをご存知ない方はぜひ読んでみてください。https://blog.cosnomi.com/archives/169https://blog.cosnomi.com/archives/258さて、前回までの記事でサーバーを停止せずにフルバックアップを取る方法を学びましたが、スナップショット領域を作成したり削除したりといろいろ面倒です。面倒なことは自動化するのが鉄則ですよね。いうことで、今回はこのバックアップ作業を自動化したいと思います。バックアップポリシーいくらデータ消失が不安だからといって、毎日フルバックアップを行うのは、ストレージや負荷の面から現実的ではありません。差分バックアップを取れますので、私は次のような方針でバックアップを取りたいと思います。呼び出すようにします。コードコードをいくつかの部分に分けて紹介します。っぽくないですが、ご容赦ください。コピペで済ませたい人は、最後にまとめてコードと変更すべき箇所を書いているのでそちらをご覧ください。ファイル関係の操作のためにです。バックアップを行うか」を判定し、レベルの数字を返しています。曜日判定を関数にすることで見通しが良くなります。自分好みに変えてみてください。ファイルの名前に日付やレベルや場所の情報を入れて分かりやすくします。これらの情報を含めておかないと復元のときに面倒です。str(level))各種コマンドスナップショットを取ったり消したりなどのコマンドを、メソッドにして定義しておきます。定数を宣言しておきます。スナップショットのマウント先となるパスの前につくやつです。スナップショットのボリュームグループ名です。backuppath)くらいですね。それ以外はそのままで大丈夫だと思います。returnコードを見てもらえれば詳しい説明はいらないかと思いますが、ざっくり解説します。用いてシェルのコマンドを呼び出しています。スナップショットへのパスです。これらのメソッドをどのように呼び出して使っているかを見てみたほうが早いと思うので次に進みます。UmountCommand(backup_path)これまで用意してきたメソッドを用いて実際にバックアップの処理をしている部分です。要素がその領域のパスとなるようなリストのリストになります。ここは、自分の環境に合わせて適宜変更してください。ファイルを圧縮するという流れです。これをバックアップ対象の領域の数だけ繰り返しています。適当な時間(深夜か早朝あたり)に呼び出してください。時間くらいで完了します。UmountCommand(backup_path)こうなります。コピペで済ませたい人も多いので最低限変更するべき箇所をまとめると、backup_devbackup_pathvg_nameバックアップポリシーの箇所(何曜日にどのレベルのバックアップをするか)targetあたりです。最後にお疲れ様でした。バックアップは重要ですが、毎回マニュアルに沿って同じ作業を繰り返すのはミスを誘発しますし、エンジニアらしくありませんから、面倒な部分は自動化してより本質的な部分に集中できるようにしたいものですね。(紹介したスクリプトは私の自宅サーバーで使用しているものですが、利用は自己責任でお願いします。記事一覧へコメントフォームは設置していませんので、ご意見・ご感想などはTwitter(@cosnomi)などへお願いします。