<p>Aipo7ã®ããã¯ã¢ããã¹ã¯ãªããã¯ãbackup_handler.sh ã¨ãã¦ããã©ã«ãã§ç¨æããã¦ãããã宿çã«åé¤ããæ©è½ã¯ä»ãã¦ããªãããããã¡ãã¡å¤ãããã¯ã¢ãããæåã§åé¤ããå¿ è¦ããã£ãã</p>
<p>ãã®è¾ºããé¢åã ã£ãã®ã§ãèªåçã«ããã¯ã¢ãããåé¤ã ãããã¹ã¯ãªãããæ¸ãã¦ã¿ããbackup_handler.sh ãæ¹é ãã¦ãããã£ãã®ã ãã©ããªã¹ãã¢ã¹ã¯ãªããã¨ã®å ¼ãåããå使¤è¨¼ãé¢åï¼ãã¼ã¸ã§ã³ã¢ããæã«ããã¯ã¢ããã¹ã¯ãªããã®ç¢ºèªã»æ¤è¨¼ããã®ãé¢åã¨ããçç±ã§ãåç¬ã§åãããã«ããã</p>
<p>åææ¡ä»¶ã¨ãã¦ãç´ ã®ã¾ã¾ã® backup_handler.sh ã cron ã§æ¯æ¥åãã¦ããç°å¢ãæ³å®ãã¦ããããã®ã¹ã¯ãªãããåãããã« cron ã§åãã°ãå¤ãããã¯ã¢ããã¯èªåã§åé¤ãã¦ãããã¯ãã(CentOS 6ç°å¢ã«ã¦æ¤è¨¼)</p>
<p><!--more--></p>
<p> ;</p>
<h3>ã¹ã¯ãªããå 容</h3>
<pre> 
#!/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; 
</pre>
<p> ;<br />
èªåã®ç°å¢ã§ã¯æ£å¸¸ã«åä½ããããå ¨ã¦ã®ç°å¢ã§åä½ãä¿è¨¼ã¯ã§ããªãã®ã§ãat your own risk ã§ãå©ç¨ãã ããã</p>
<h3>è¬è¾</h3>
<p>ãã®ã¹ã¯ãªããã®å 容ã«é¢ãã¦ã¯ã以ä¸ã®ãµã¤ãã®ã¹ã¯ãªãããåèã«ããã¦ããã ãã¾ãããã¨ããããã»ã¨ãã©ä¸¸ãã¯ãªã§ããããããªããã</p>
<blockquote>
<p><a href="http://mukaer.com/archives/2012/03/14/vpscentos/" target="_blank">ãããã®VPS+CentOSã§è¨å®ãã¦ããããèªåããã¯ã¢ãã<br />
http://mukaer.com/archives/2012/03/14/vpscentos/</a></p>
</blockquote>
<p> ;</p>
<h3>2013/07/16 追è¨</h3>
<p>ã¹ã¯ãªããå ¬éã®ããã®ã³ã¼ãã¯ãªã¼ãã³ã°ä½æ¥ã«ä¸åããããæ£å¸¸ã«åä½ããªãã¹ã¯ãªãããé·æã«ãããæ²è¼ãã¦ããã¾ãã(ç¾å¨ã¯ä¿®æ£ãã¦ããã¾ã)ããè¿·æãããããã¦ãèª ã«ç³ã訳ãããã¾ããã§ããã</p>
<p>ã³ã¼ãã®ä¸åãã³ã¡ã³ããããé£çµ¡ããã ãã¾ãããfooæ§ãTajioæ§ããææããã ãã¾ãã¦èª ã«ãããã¨ããããã¾ããã</p>

View Comments
私もAipoのバックアップがディスクを圧迫していたので
参考にさせて頂きました
ありがとうございます
私の環境では、そのままでは動きませんでしたので
参考までに
CentOS5.6
Aipo7.0.0.0
---------------------------------------
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
KEEPDAY=30
RMDIR=`date --date="${KEEPDAY} days ago" +'%Y%m%d'`
B_DIR="/usr/local/aipo/backup/"
cd $B_DIR
for file in `find ${B_DIR}* -type d -name "[0-9]*" -prune` ;
do
D_DATE=`echo $file | sed -e "s/.*\([0-9]\{8\}\)[0-9]\{5\}$/\1/g"`
if [ ` expr $D_DATE + 0` -le ` expr $RMDIR + 0 ` ] ; then
rm -rf $file
fi
done;
コメントいただいていたのを見落としておりまして、すみませんでした。
${KEEPDAY} にしないと、変数として認識せずに動かない場合もありますよね。ちゃんとカッコで囲ってたり囲ってなかったりと、適当に作ってるせいでご迷惑をおかけしてすみません。
ご指摘いただきありがとうございました。現在検証環境がなくなってしまったので、作成次第スクリプトも書き直して修正したいと思います。
動かない理由はループの代入先がfileになっているからだよ。
代入が$fileなのにecho $DELDIRじゃsedもできないっすw
でも自分で考えて作るよりすげー楽でした!感謝です。
ご指摘ありがとうございます。仰る通り、変数名が間違っていました。
自社の環境で動かしていたスクリプトは現在確認できないのですが、そのまま公開するのはアレだったのでコードクリーニングしたものの、必要もないのに変数名まで修正して、その上肝心のfor部分の変数名編集を忘れ、さらにはご指摘いただくまで気づいていなかったという間抜けっぷり・・・(hoo様にも同様のご指摘をいただいていたのに、見落とすというさらなる間抜けぶり・・・)。お恥ずかしい限りです。
本日、スクリプトの方も修正いたしました。今後は公開に際して、より注意深く作業いたしたく思います。どうもありがとうございました。