Files
bin/backup_espocrm.sh

35 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# To be run by user mkt to back up the EspoCRM pod: a MariaDB dump and a
# tarball of the EspoCRM data dir (config.php with crypt/passwordSalt key,
# data/upload, custom). Manual invocation only (no timer, no cron).
# Environment variables
POD_NAME='espocrm_pod'
DB_CTR='mariadb_ctr'
DB_NAME='espocrm'
BIND_DIR="$HOME/.local/share/$POD_NAME"
ESPO_DATA_DIR="$BIND_DIR/espocrm" # /var/www/html
BAK_DIR="$HOME/bak"
TS=$(date +%Y%m%d-%H%M%S)
mkdir -p "$BAK_DIR"
# DB dump: run inside the container so no password is needed in this script;
# MARIADB_ROOT_PASSWORD is taken from the container's own environment.
DB_BAK="$BAK_DIR/espocrm-db-$TS.sql.gz"
podman exec "$DB_CTR" sh -c \
'exec mariadb-dump --single-transaction --routines --triggers -uroot -p"$MARIADB_ROOT_PASSWORD" '"$DB_NAME" \
| gzip > "$DB_BAK"
echo "Wrote DB dump $DB_BAK (rc=$?)"
# File backup of the EspoCRM data directory
FILES_BAK="$BAK_DIR/espocrm-files-$TS.tar.gz"
tar -czf "$FILES_BAK" -C "$ESPO_DATA_DIR" .
echo "Wrote files backup $FILES_BAK (rc=$?)"
echo ""
echo "Backup complete:"
echo " $DB_BAK"
echo " $FILES_BAK"