Skip to content

Commit 8ab01eb

Browse files
committed
examples
backup script now working (use only for tests and not for prod.)
1 parent eebee30 commit 8ab01eb

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

examples/fpm-nginx-dhi-k8s/wsc-backup-cronjob.yaml

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
# WSC Backup Cronjob with Shell-Script
2-
# using: Toolbox Image from https://github.com/Tob1as/docker-tools
3-
# Requirements: kubectl, jq, tar, gzip, mariadb-client/mysql-client
4-
5-
6-
# DO NOT USE - DATABASE BACKUP is NOT ready !!!!!!!!!!!!!
7-
8-
9-
# DO NOT USE - DATABASE BACKUP is NOT ready !!!!!!!!!!!!!
10-
11-
12-
# DO NOT USE - DATABASE BACKUP is NOT ready !!!!!!!!!!!!!
1+
# WSC Backup Cronjob for Database and Files with simple Shell-Script
2+
#
3+
# Docker Image: Toolbox from https://github.com/Tob1as/docker-tools
4+
# Requirements: kubectl, jq, tar, gzip, mariadb-connector-c, mariadb-client (mysql-client)
5+
#
6+
# Docs (WSC Backup):
7+
# * https://manual.woltlab.com/en/backup/
8+
# * https://manual.woltlab.com/de/backup/
9+
#
10+
# NOTE:
11+
# * The script below is just an example. Adapt it to your requirements and TEST backup and recovery!!
12+
# * NO guarantee!
13+
# * This script does NOT make remote backups! (via SSH/SFTP, ...)
14+
#
1315

1416
---
1517

@@ -61,7 +63,7 @@ roleRef:
6163

6264
---
6365

64-
---
66+
# Recommended: After the initial installation, comment PVC out to protect it (and backups) from deletion by mistake.
6567

6668
apiVersion: v1
6769
kind: PersistentVolumeClaim
@@ -128,13 +130,13 @@ spec:
128130
- /bin/sh
129131
- -c
130132
- "sleep 5; exit 0"
131-
envFrom:
132-
- configMapRef:
133-
name: wsc-backup-env-config
134-
optional: true
135-
- secretRef:
136-
name: wsc-backup-env-secret
137-
optional: true
133+
#envFrom:
134+
#- configMapRef:
135+
# name: wsc-backup-env-config
136+
# optional: true
137+
#- secretRef:
138+
# name: wsc-backup-env-secret
139+
# optional: true
138140
env:
139141
- name: TZ
140142
value: "Europe/Berlin"
@@ -197,7 +199,7 @@ data:
197199
backup-script.sh: |-
198200
#!/bin/sh
199201
200-
# Requirements: kubectl, jq, tar, gzip, mariadb-client (mysql-client)
202+
# Requirements: kubectl, jq, tar, gzip, mariadb-connector-c, mariadb-client (mysql-client)
201203
202204
set -eu
203205
@@ -263,20 +265,20 @@ data:
263265
# BACKUPS
264266
echo ">> Backup process is started ..."
265267
if [ -n "$DB_DEPLOYMENT_NAME" -a -n "$DB_HOST" -a -n "$DB_PORT" -a -n "$DB_USERNAME" -a -n "$DB_PASSWORD" -a -n "$DB_DATABASE" ]; then
266-
echo ">> Database Backup process is started ..."
267-
DB_DUMP_OPTIONS="--skip-ssl-verify-server-cert" # --skip-ssl
268+
echo ">> [$(date '+%H:%M:%S')] Database Backup process is started ..."
269+
DB_DUMP_OPTIONS="--single-transaction --skip-lock-tables --net_buffer_length 16384 --no-tablespaces --skip-ssl-verify-server-cert" # --skip-ssl-verify-server-cert or --skip-ssl
268270
mariadb-dump --host=${DB_HOST} --port=${DB_PORT} --user=${DB_USERNAME} --password=${DB_PASSWORD} ${DB_DUMP_OPTIONS} --databases ${DB_DATABASE} | gzip -9 > ${BACKUP_PATH_LOCAL}/wsc_backup_${BACKUP_DATE}_db.sql.gz
269271
#mariadb-dump --host=${DB_HOST} --port=${DB_PORT} --user=${DB_USERNAME} --password=${DB_PASSWORD} ${DB_DUMP_OPTIONS} --databases ${DB_DATABASE} > ${BACKUP_PATH_LOCAL}/wsc_backup_${BACKUP_DATE}_db.sql
270-
echo ">> Database Backup process is complete!"
272+
echo ">> [$(date '+%H:%M:%S')] Database Backup process is complete!"
271273
else
272274
echo ">> WARNING: Database Backup process is skipped!"
273275
fi
274276
if [ -n "$WEB_DEPLOYMENT_NAME" -a -n "$WEB_CONTAINER_HELPER_NAME" -a -n "$WEB_CONTAINER_HELPER_BACKUP_PATH" ]; then
275-
echo ">> Files (Web) Backup process is started ..."
277+
echo ">> [$(date '+%H:%M:%S')] Files (Web) Backup process is started ..."
276278
kubectl ${CONTEXT} -n ${NAMESPACE} exec "${WEB_POD_NAME}" -c "${WEB_CONTAINER_HELPER_NAME}" -- tar cvpzf ${WEB_CONTAINER_HELPER_BACKUP_PATH}/wsc_backup_${BACKUP_DATE}_files.tar.gz -C /var/www/html .
277279
kubectl ${CONTEXT} -n ${NAMESPACE} -c "${WEB_CONTAINER_HELPER_NAME}" cp "${WEB_POD_NAME}:${WEB_CONTAINER_HELPER_BACKUP_PATH}/wsc_backup_${BACKUP_DATE}_files.tar.gz" ${BACKUP_PATH_LOCAL}/wsc_backup_${BACKUP_DATE}_files.tar.gz
278280
kubectl ${CONTEXT} -n ${NAMESPACE} exec "${WEB_POD_NAME}" -c "${WEB_CONTAINER_HELPER_NAME}" -- sh -c "rm ${WEB_CONTAINER_HELPER_BACKUP_PATH}/wsc_backup_${BACKUP_DATE}_files.tar.gz"
279-
echo ">> Files Backup process is complete!"
281+
echo ">> [$(date '+%H:%M:%S')] Files Backup process is complete!"
280282
else
281283
echo ">> WARNING: Files Backup process is skipped!"
282284
fi

0 commit comments

Comments
 (0)