83 lines
2.3 KiB
Bash
Executable File
83 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -Eeuo pipefail
|
|
|
|
RED="\e[31m"
|
|
GREEN="\e[32m"
|
|
YELLOW="\e[33m"
|
|
BLUE="\e[34m"
|
|
RESET="\e[0m"
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${RESET} $1"; }
|
|
log_success() { echo -e "${GREEN}[OK]${RESET} $1"; }
|
|
log_warn() { echo -e "${YELLOW}[WARN]${RESET} $1"; }
|
|
log_error() { echo -e "${RED}[ERROR]${RESET} $1"; }
|
|
|
|
trap 'log_error "Fehler in Zeile $LINENO"' ERR
|
|
|
|
if [[ "$EUID" -ne 0 ]]; then
|
|
log_error "Script muss als root laufen!"
|
|
exit 1
|
|
fi
|
|
|
|
exec 9>/var/lock/docker-control.lock
|
|
flock -n 9 || { log_error "Script läuft bereits!"; exit 1; }
|
|
|
|
export_database() {
|
|
log_info "Exportiere DEV"
|
|
cp /data/TEMP/Database.sql /data/TEMP/Database-$(date +%Y-%m-%d_%H-%M-%S).sql
|
|
echo "Letzten 5 Dateien gelistet:"
|
|
du -sh /data/TEMP/Database-* | tail -n 5
|
|
mariadb-dump -h 127.0.0.1 -u worker -pbBHofurUJWKzPE8Z --all-databases > /data/TEMP/Database.sql
|
|
log_info "DEV wurde nach DEV.sql exportiert"
|
|
}
|
|
|
|
import_database() {
|
|
$timestamp=$(date +%Y%m%d%H%M%S)
|
|
log_info "Bereinige alte Datenbank"
|
|
mariadb -h 127.0.0.1 -u worker -pbBHofurUJWKzPE8Z -e "DROP DATABASE DEV; CREATE DATABASE DEV;"
|
|
log_info "Alte Datenbank bereinigt"
|
|
echo ""
|
|
log_info "Lese DEV.sql ein"
|
|
mariadb -h 127.0.0.1 -u worker -pbBHofurUJWKzPE8Z DEV < /data/TEMP/Database.sql
|
|
mv /data/TEMP/Database.sql /data/TEMP/Database-${timestamp}.sql
|
|
log_info "DEV-${timestamp}.sql wurde eingelesen"
|
|
}
|
|
|
|
update_tables() {
|
|
local timestamp
|
|
timestamp=$(date +%Y%m%d%H%M%S)
|
|
log_info "Sichere aktuellen Stand von DEV vor Überschreiben"
|
|
mariadb-dump -h 127.0.0.1 -u worker -pbBHofurUJWKzPE8Z --single-transaction DEV \
|
|
> /data/TEMP/DEV-backup-${timestamp}.sql
|
|
log_info "Synchronisiere Tabellen LIVE -> DEV"
|
|
mariadb-dump -h 127.0.0.1 -u worker -pbBHofurUJWKzPE8Z --verbose --single-transaction --triggers --add-drop-table LIVE \
|
|
| mariadb -h 127.0.0.1 -u worker -pbBHofurUJWKzPE8Z DEV
|
|
log_success "Tabellen aktualisiert (${timestamp})"
|
|
}
|
|
|
|
ACTION="${1:-}"
|
|
|
|
case "$ACTION" in
|
|
|
|
export)
|
|
export_database
|
|
;;
|
|
|
|
import)
|
|
import_database
|
|
;;
|
|
|
|
update)
|
|
update_tables
|
|
;;
|
|
|
|
*)
|
|
echo "Usage:"
|
|
echo " $0 import"
|
|
echo " $0 export"
|
|
echo " $0 update"
|
|
exit 1
|
|
;;
|
|
esac
|