GUiLZ Project Personal & Experimental Blog

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/

 

2013/07/16 追記

スクリプト公開のためのコードクリーニング作業に不備があり、正常に動作しないスクリプトを長期にわたり掲載しておりました(現在は修正しております)。ご迷惑をおかけして、誠に申し訳ございませんでした。

コードの不備をコメントよりご連絡いただきました、foo様、Tajio様、ご指摘いただきまして誠にありがとうございました。

スポンサードリンク

4 Responses to Aipo7のバックアップを自動削除するスクリプト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

当サイトのコメント欄は承認制となっております。また、日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサードリンク

Twitter
利用中のサービス

GUiLZ Project では、以下のサービスを利用しています。


関連サイト
巡回先サイト様
アーカイブ