MySQL Backup
從 Host 執行
backup-db.sh
#!/bin/bash
BKDIR="db_backups"
BKFILE="cloudcoin_raida#17.`date +%y%m%d`.sql"
DBUSER="ThisDBUser"
DBNAME="cloudcoin_raida"
CONTNAME="raida17"
CONTDIR="/opt/data/$BKDIR"
HOSTDIR="/docker_vol/raida/data/$BKDIR"
KEEP=2
[ -d $HOSTDIR ] || mkdir $HOSTDIR
cd $HOSTDIR
start_s=$(date +%s)
echo "*********** START `date "+%F@%T"` **************"
# Full Backup
echo "-> Back up Full DB "
docker exec $CONTNAME bash -c "mysqldump --single-transaction --add-drop-table -u $DBUSER $DBNAME > $CONTDIR/$BKFILE"
retval=$?
if [ $retval -eq 0 ];then
echo "... [success]"
else
echo "... [failure]**"
exit 1
fi
# Compress the files
echo "-> Compress the dump file "
gzip -f $HOSTDIR/$BKFILE
retval=$?
if [ $retval -eq 0 ];then
echo "... [success]"
BKFILE="$BKFILE.gz"
else
echo "... [*failure*]"
exit 1
fi
# Purge the old files
echo "-> Purge the old files"
ls_files=($(ls -lt cloudcoin_raida* | awk -F ' ' '{print $9}'))
len=${#ls_files[@]}
i=$KEEP
while (($i < $len));do
rm -vf "${ls_files[$i]}"
let i++
done
end_s=$(date +%s)
elapsed=$(( end_s - start_s ))
echo
echo "Elapsed: $elapsed seconds"
echo "Output File: $HOSTDIR/$BKFILE"
echo "*********** END `date "+%F@%T"` **************"
echo