| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/usr/bin/env bash
- # =============================================================================
- # Hetzner -> ohmu: dr_mustikas andmebaasi + Drupali HTML sünkroonimine
- # Välja arvatud settings.php (ohmu oma jääb alles)
- # Käivita root õigustega: sudo bash sync_from_hetzner.sh
- # Ajastatud: pühapäev 05:30 (ohmu ardo crontab)
- #
- # Tugevdused:
- # - set -euo pipefail (pipe vead ei maskeeru)
- # - flock-lukk (ei käivitu korduvalt, kui eelmine veel jookseb)
- # - dump kirjutatakse faili ja kontrollitakse suurust enne importi
- # - --routines --triggers --default-character-set=utf8mb4
- # - logifail /home/ardo/logs/mustikas-sync.log
- # =============================================================================
- set -euo pipefail
- HETZNER="root@100.80.222.54"
- OHMU_MARIADB_PASS="ai_root_pass_2026"
- HETZNER_HTML="/var/lib/docker/volumes/drupal_mustikas-1-html/_data"
- OHMU_HTML="/var/lib/docker/volumes/drupal_mustikas-html/_data"
- LOG="/home/ardo/logs/mustikas-sync.log"
- # ── flock-lukk: jäta vahele, kui eelmine käivitus veel jookseb ──
- exec 9>"/tmp/mustikas-sync.lock"
- flock -n 9 || { echo "Sync juba käib — väljun."; exit 1; }
- exec > >(tee -a "$LOG") 2>&1
- echo "=== $(date): Alustan sünkroonimist ==="
- # ── 1. MariaDB: dump hetznerist faili, kontrolli, impordi ohmu-sse ──
- echo "[1/3] MariaDB: dump hetzner dr_mustikas -> ohmu mariadb ..."
- DUMP="/tmp/dr_mustikas-$(date +%F).sql"
- ssh "$HETZNER" "docker exec mariadb_simple sh -c 'mariadb-dump -u root -p\"\$(cat /run/secrets/mysql_root_password)\" --single-transaction --routines --triggers --default-character-set=utf8mb4 dr_mustikas'" > "$DUMP"
- if [ ! -s "$DUMP" ]; then
- echo "VIGA: dump on tühi — impordi tegemata jätan."
- rm -f "$DUMP"
- exit 1
- fi
- echo " Dump suurus: $(du -h "$DUMP" | cut -f1)"
- docker exec -i mariadb mariadb -u root -p"$OHMU_MARIADB_PASS" dr_mustikas < "$DUMP"
- rm -f "$DUMP"
- echo " DB sünkroonitud."
- # ── 2. Rsync Drupali HTML (v.a settings.php) — vajab root õigusi ──
- echo "[2/3] Rsync: hetzner HTML -> ohmu (v.a settings.php) ..."
- rsync -av --delete --exclude="settings.php" -e "ssh" \
- "$HETZNER:$HETZNER_HTML/" \
- "$OHMU_HTML/"
- echo " HTML sünkroonitud."
- # ── 3. Tühjenda Drupali puhver ──
- echo "[3/3] Drupali puhvri tühjendamine..."
- docker exec drupal_mustikas sh -c "rm -rf /var/www/html/sites/default/files/cache/*" 2>/dev/null \
- || echo " (puhvri tühjendamine jäi vahele)"
- echo ""
- echo "=== $(date): Sünkroonimine valmis ==="
|