2026-09-23 14:26:05 +09:00

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