XREAでシェルスクリプトをおいてみた。目的はデータのバックアップだったのだが、XREAは無料版だと
cronが設定できないので、変更した時は手動でバックアップしてます。
参考元のだと私の環境だとmysqldumpがうまくいかなかったので、ちょっと改良してます。
1.フォルダの作成
public_html/と同じ場所にフォルダを作成
$ mkdir ~/backup-mysql
2.backup-mysqlに移動して、シェルスクリプト作成
シェルスクリプトはパーミッション700で作成
$ cd ~/backup-mysql
[backup-mysql]$ touch backup.sh
[backup-mysql]$ chmod 700 backup.sh
3.シェルスクリプトを編集
ここからは私の独自の設定です。
メール送信はXREAではできません。
※そもそもmailコマンドがない
backup.sh
#!/bin/sh
# 初期設定(ここを自分に合わせる)
DATABASE=◯◯◯◯
DBUSERNAME=◯◯◯◯
PASSWORD=◯◯◯◯
XREAUSERNAME=◯◯◯◯
PORT=9306
BACKUPDIR=backup-mysql
KEEPDAY=3
MAILADDRESS=◯◯◯◯@◯◯◯◯
PROGRAM=~/public_html/
# XREA/CORESERVER 設定
PREFIX=mysql
SERVER=localhost
NOWDATE=`date +%Y%m%d`
DESTDIR=/virtual/$XREAUSERNAME/$BACKUPDIR
DUMPFILE=$PREFIX.$NOWDATE.sql
TARFILE=$PREFIX.$NOWDATE.tar.gz
TARFILE2=$XREAUSERNAME.$NOWDATE.tar.gz
OLDDATE=`date "-d$KEEPDAY days ago" +%Y%m%d`
# MySQLダンプ/圧縮
cd $DESTDIR
mysqldump -u $DBUSERNAME -P $PORT -B $DATABASE -p$PASSWORD >$DUMPFILE
tar zcvf $TARFILE $DUMPFILE
#ソース保存 *public_html以下の特定フォルダだけの場合は後ろのパスを変える。
tar cvfz $TARFILE2 $PROGRAM --exclude downloads
#downloadsというフォルダを除外。cakephpにコピーした時に増えるので。
# 処理判定
if [ $? != 0 -o ! -e $TARFILE ]; then
echo "backup faild -- ($DUMPFILE)"
exit 1
fi
判定処理部分は毎日バックアップしないなら意味なし。
5.起動してみる。
本来はcronだが、XREAの無料版はcron対応していないので、手動で起動。
$ ~/backup-mysql/backup.sh
以上