You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.4 KiB
Bash

#!/bin/bash
ROOTPATH="/home/suwako/dev/kikikanri"
BCKPDIR=`cd ${ROOTPATH}/backup && pwd`
BACKEND=`cd ${ROOTPATH}/backend && pwd`
source ${BACKEND}/.env
TIME=`date '+%Y%m%d%H'`
echo "バックアップフォルダ=${BCKPDIR}"
echo "バックエンドフォルダ=${BACKEND}"
echo "${TIME} MYSQLバックアップ開始"
# DBコンテナ
DBCONTID=`docker ps -q -f status=running -f name=db`
if [ -z "$DBCONTID" ]; then
echo "db は起動されていません。"
exit 0
fi
# アプリコンテナ
FLCONTID=`docker ps -q -f status=running -f name=app`
if [ -z "$FLCONTID" ]; then
echo "app は起動されていません。"
exit 0
fi
# DBバックアップ
echo "${BACKEND} MYSQLバックアップ開始"
DNAME="${TIME}_mysql.sql"
echo "ファイル名=${DNAME}"
docker exec $DBCONTID mysqldump --no-tablespaces --user=$DB_USERNAME --host=$DB_HOST --password=$DB_PASSWORD --databases $DB_DATABASE > "${BCKPDIR}/mysql/${DNAME}"
gzip "$BCKPDIR/mysql/$DNAME"
# ファイルバックアップ
echo "${BACKEND} ファイルバックアップ開始"
FNAME="${TIME}.tar.gz"
echo "ファイル名=${FNAME}"
docker exec $FLCONTID tar zcf $FNAME -C / work/storage/app/private
mv ${BACKEND}/${FNAME} ${BCKPDIR}/file
# 7日より古いファイルを削除
echo "7日より古いファイルを削除"
find ${BCKPDIR}/mysql -type f -name "${TIME}_mysql.sql.gz" -mtime +7 | xargs rm -f;
find ${BCKPDIR}/file -type f -name "${TIME}.tar.gz" -mtime +7 | xargs rm -f;