mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
36 lines
1.4 KiB
Bash
Executable File
36 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# base setup
|
|
SCRIPT_PATH=$(realpath $0)
|
|
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
|
|
|
# check CONFIGURATION
|
|
if [ -z ${CONFIGURATION} ]; then
|
|
echo "You must provide a `CONFIGURATION` via environment variable"
|
|
exit 1
|
|
fi
|
|
|
|
# configuration
|
|
KUBECONFIG=${KUBECONFIG:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeconfig.yaml}
|
|
BACKUP_DATE=$(date "+%F_%H-%M-%S")
|
|
BACKUP_FOLDER=${BACKUP_FOLDER:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/backup/${BACKUP_DATE}}
|
|
|
|
# create backup fodler
|
|
mkdir -p ${BACKUP_FOLDER}
|
|
|
|
# cluster maintenance mode on && Neo4j maintenance mode on
|
|
${SCRIPT_DIR}/cluster.neo4j.sh maintenance on
|
|
|
|
# database backup
|
|
kubectl --kubeconfig=${KUBECONFIG} -n default exec -it \
|
|
$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') \
|
|
-- neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$BACKUP_DATE-neo4j-dump
|
|
# copy neo4j backup to local drive
|
|
kubectl --kubeconfig=${KUBECONFIG} cp \
|
|
default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j |awk '{ print $1 }'):/var/lib/neo4j/$BACKUP_DATE-neo4j-dump $BACKUP_FOLDER/neo4j-dump
|
|
# copy image data
|
|
kubectl --kubeconfig=${KUBECONFIG} cp \
|
|
default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-backend |awk '{ print $1 }'):/app/public/uploads $BACKUP_FOLDER/public-uploads
|
|
|
|
# Neo4j maintenance mode off && cluster maintenance mode off
|
|
${SCRIPT_DIR}/cluster.neo4j.sh maintenance off |