#!/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"