#!/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