CentOS系でConcrete5.8のfilesとDBのバックアップを仕掛ける。
前回、CloudGarageさんのクラウドサーバを使って、Concrete5.8を構築しましたが、自動でバックアップをどうにかしようかと、頑張りました、シェルスクリプトとcronで。
うまく行くかはお楽しみ(ぇ
tomoacさんのページで紹介されていた、bashを5.8用にカスタマイズと、ある世代以上はファイルを削除する方法をチャレンジ。
んで、早々にどこにbashを置いたらいいのかわからないので、Linux系のフォルダの命名規則を改めて調べたりしました。
基本に忠実に5.7系(削除機能なし)
www.smartwebprojects.net
8 Shares
1 User
Blog about concrete5 cmsDoing daily automatic backup for concrete5
Doing backups is always good. If something crashes, you can restore the website from backup. If your website is changing dynamically, even a backup made a week
- まずは、上のサイトにあるbashを、”/usr/local/bin”にありがたくwgetコマンドでダウンロード。
- バックアップフォルダを好きなところに作る。好きなところってどこや!という人は、Webディレクトリではないところ、rootとか?だそうです。
- 頂戴したbashのDBと、concrete5を入れているディレクトリ部分を自分用に変更する。
- 【ここ重要】61行目の$CONCRETE5_DIRの次に”/application”を追加する。5.7系でファイル構成が変わったので忘れずに。
- 実行できる様にアクセス許可を設定する。
chmod 755 concrete5_backup.sh
- crontab -eでcronに以下行を追加。以下は毎日3時に設定しています。
0 3 * * * /usr/local/bin/concrete5_backup.sh
ある世代数作ったらそれ以前は削除する機能をつける
以下の様なコードを作って、bashファイルの一番下に追加しました。
#delete "mx"th generation files
#mx : max number
cnt=0
mx=7
for file in 'ls -lt ${1}*'
do
cnt=$((cnt+1))
mx=$((mx*2))
if [${cnt} -le ${mx}]
then
continue
fi
eval "rm -rf ${files}"
done
うまく動く保証はありませんが、私の改変したbashはこちら。
- 61行目の$CONCRETE5_DIRの次に”/application”を追加する。
- ファイルの数を数えてそれ以外は消すプログラムを自力で作る。
って感じです。linux系の計算の方法知らんかったせいで時間食いましたが。
使えるのかな〜?