Aipo7のバックアップスクリプトは、backup_handler.sh としてデフォルトで用意されているが、定期的に削除する機能は付いていないため、いちいち古いバックアップを手動で削除する必要があった。
その辺りが面倒だったので、自動的にバックアップを削除だけするスクリプトを書いてみた。backup_handler.sh を改造してもよかったのだけど、リストアスクリプトとの兼ね合いや動作検証が面倒&バージョンアップ時にバックアップスクリプトの確認・検証するのが面倒という理由で、単独で動くようにした。
前提条件として、素のままの backup_handler.sh を cron で毎日回している環境を想定している。このスクリプトも同じように cron で回せば、古いバックアップは自動で削除してくれるはず。(CentOS 6環境にて検証)
スポンサードリンク
#!/bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin # バックアップを保持する日数 KEEPDAY=30 # 削除する日付のディレクトリ名を生成 RMDIR=`date --date="$KEEPDAY day ago" +'%Y%m%d'` # Aipoのバックアップ先 B_DIR=/usr/local/aipo/backup/ cd $B_DIR # バックアップディレクトリの階層から、バックアップディレクトリ一覧を取得 for DELDIR in `find ${B_DIR}* -type d -name "[0-9]*" -prune` ; do # ディレクトリの名前から、バックアップ日時を特定する D_DATE=`echo $DELDIR | sed -e "s/.*\([0-9]\{8\}\)[0-9]\{5\}$/\1/g"` # 日付の比較 if [ ` expr $D_DATE + 0` -le ` expr $RMDIR + 0 ` ] ; then #ファイル削除 rm -rf $DELDIR fi done;
自分の環境では正常に動作したが、全ての環境で動作を保証はできないので、at your own risk でご利用ください。
このスクリプトの内容に関しては、以下のサイトのスクリプトを参考にさせていただきました。というか、ほとんど丸パクリです、ごめんなさい。
さくらのVPS+CentOSで設定しておきたい自動バックアップ
http://mukaer.com/archives/2012/03/14/vpscentos/
スクリプト公開のためのコードクリーニング作業に不備があり、正常に動作しないスクリプトを長期にわたり掲載しておりました(現在は修正しております)。ご迷惑をおかけして、誠に申し訳ございませんでした。
コードの不備をコメントよりご連絡いただきました、foo様、Tajio様、ご指摘いただきまして誠にありがとうございました。
スポンサードリンク
当サイトのコメント欄は承認制となっております。また、日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)
4 Responses to Aipo7のバックアップを自動削除するスクリプト