120 lines
2.7 KiB
Bash
Executable File
120 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# 各種設定
|
|
#
|
|
|
|
# ユーザー・パスワード取り込み
|
|
# BK_USERとBK_PASSはbackup_secretに書いてある#!/bin/bash
|
|
source /usr/local/etc/backup_secret
|
|
|
|
# CPU使用率
|
|
BK_CPUPOWER=15
|
|
BK_COPYBWDT=6400k
|
|
#BK_CPUPOWER=40 ← WordPressの6.7GBをバックアップするときはこれ
|
|
#BK_COPYBWDT=9600k ← 家族用のブログで更新頻度が低いので週次で実施
|
|
|
|
BK_BASEDIR=/root/work/backup
|
|
BK_DESTDIR=/root/work/backup/linkstation
|
|
BK_PREFIX=hogehoge
|
|
BK_SUFFIX="date +%Y-%m-%d-%H-%M-%S"
|
|
|
|
BK_RETENTIONDAYS=7
|
|
#BK_RETENTIONWEEKS=5 ← WordPressは5週間保管
|
|
|
|
#
|
|
# 関数
|
|
#
|
|
|
|
function OutputSeconds () {
|
|
i=$SECONDS
|
|
((sec=i%60, min=(i%3600)/60, hrs=i/3600))
|
|
echo $(printf "経過時間 %d:%02d:%02d" $hrs $min $sec)
|
|
}
|
|
|
|
function SlowCopy() {
|
|
SC_BASE=`basename $1`
|
|
SC_NAME=${SC_BASE%.*}
|
|
SC_EXT=${SC_BASE##*.}
|
|
|
|
SC_DESTNAME=$BK_DESTDIR/$BK_PREFIX.$SC_NAME.`$BK_SUFFIX`.$SC_EXT
|
|
|
|
cat $1 | pv -q -L $BK_COPYBWDT > $SC_DESTNAME
|
|
}
|
|
|
|
function RetentionBaseName() {
|
|
SC_BASE=`basename $1`
|
|
SC_NAME=${SC_BASE%.*}
|
|
SC_EXT=${SC_BASE##*.}
|
|
|
|
SC_DESTNAME=$BK_DESTDIR/$BK_PREFIX.$SC_NAME.*.$SC_EXT
|
|
|
|
echo $SC_DESTNAME
|
|
}
|
|
|
|
|
|
# 処理開始時刻の表示と記録
|
|
echo "処理開始" `date`
|
|
|
|
|
|
#
|
|
# バックアップデーター作成
|
|
#
|
|
|
|
# Kopano
|
|
echo "Kopano " `OutputSeconds`
|
|
|
|
rm $BK_BASEDIR/kopanoserver.dmp
|
|
rm $BK_BASEDIR/kopano.zip
|
|
|
|
cpulimit -l $BK_CPUPOWER -f -- \
|
|
mysqldump --single-transaction --routines kopanoserver > $BK_BASEDIR/kopanoserver.dmp
|
|
|
|
cpulimit -l $BK_CPUPOWER -f -- \
|
|
zip -rq $BK_BASEDIR/kopano.zip \
|
|
$BK_BASEDIR/kopanoserver.dmp \
|
|
/var/lib/kopano/attachments
|
|
|
|
|
|
# Alfresco
|
|
echo "Alfresco" `OutputSeconds`
|
|
|
|
rm $BK_BASEDIR/alfresco.dmp
|
|
rm $BK_BASEDIR/alfresco.zip
|
|
|
|
cpulimit -l $BK_CPUPOWER -f -- \
|
|
mysqldump --single-transaction alfresco > $BK_BASEDIR/alfresco.dmp
|
|
|
|
cpulimit -l $BK_CPUPOWER -f -- \
|
|
zip -rq $BK_BASEDIR/alfresco.zip \
|
|
$BK_BASEDIR/alfresco.dmp \
|
|
/usr/share/alfresco/alf_data/contentstore \
|
|
/usr/share/alfresco/alf_data/contentstore.deleted
|
|
|
|
|
|
#
|
|
# データ転送と世代管理
|
|
#
|
|
|
|
echo "Transfer" `OutputSeconds`
|
|
|
|
mount -o username=$BK_USER,password=$BK_PASS,vers=2.0 //linkstation/backup $BK_DESTDIR
|
|
|
|
SlowCopy $BK_BASEDIR/kopano.zip $BK_DESTDIR
|
|
SlowCopy $BK_BASEDIR/alfresco.zip $BK_DESTDIR
|
|
|
|
find $BK_DESTDIR/ -mtime +${BK_RETENTIONDAYS-1} -name $BK_PREFIX.kopano.*.zip | xargs rm -f
|
|
find $BK_DESTDIR/ -mtime +${BK_RETENTIONDAYS-1} -name $BK_PREFIX.alfresco.*.zip | xargs rm -f
|
|
# WordPressを週次バックアップにしようとして計算式の書き方を変更
|
|
#find $BK_DESTDIR/ -mtime +$(($BK_RETENTIONWEEKS*7-1)) -name $BK_PREFIX.wordpress.*.zip | xargs rm -f
|
|
|
|
umount $BK_DESTDIR
|
|
|
|
|
|
#
|
|
# 終了処理
|
|
#
|
|
|
|
echo "処理終了" `date`
|
|
OutputSeconds
|