sync_from_hetzner.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env bash
  2. # =============================================================================
  3. # Hetzner -> ohmu: dr_mustikas andmebaasi + Drupali HTML sünkroonimine
  4. # Välja arvatud settings.php (ohmu oma jääb alles)
  5. # Käivita root õigustega: sudo bash sync_from_hetzner.sh
  6. # =============================================================================
  7. set -e
  8. HETZNER="root@100.80.222.54"
  9. OHMU_MARIADB_PASS="ai_root_pass_2026"
  10. HETZNER_HTML="/var/lib/docker/volumes/drupal_mustikas-1-html/_data"
  11. OHMU_HTML="/var/lib/docker/volumes/drupal_mustikas-html/_data"
  12. echo "=== $(date): Alustan sünkroonimist ==="
  13. # 1. MariaDB: dump hetznerist ja import ohmu-sse
  14. echo "[1/3] MariaDB: dump hetzner dr_mustikas -> ohmu mariadb ..."
  15. ssh "$HETZNER" "docker exec mariadb_simple sh -c 'mariadb-dump -u root -p\"\$(cat /run/secrets/mysql_root_password)\" --single-transaction dr_mustikas'" \
  16. | docker exec -i mariadb mariadb -u root -p"$OHMU_MARIADB_PASS" dr_mustikas 2>/dev/null
  17. echo " DB sünkroonitud."
  18. # 2. Rsync Drupali HTML (v.a settings.php) — vajab root õigusi
  19. echo "[2/3] Rsync: hetzner HTML -> ohmu (v.a settings.php) ..."
  20. rsync -av --delete --exclude="settings.php" -e "ssh" \
  21. "$HETZNER:$HETZNER_HTML/" \
  22. "$OHMU_HTML/"
  23. echo " HTML sünkroonitud."
  24. # 3. Tühjenda Drupali puhver
  25. echo "[3/3] Drupali puhvri tühjendamine..."
  26. docker exec drupal_mustikas sh -c "cd /var/www/html && php -r '
  27. include_once \"includes/bootstrap.inc\";
  28. drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
  29. cache_clear_all();
  30. drupal_set_message(\"Cache cleared.\");
  31. '" 2>/dev/null || 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)"
  32. echo ""
  33. echo "=== $(date): Sünkroonimine valmis ==="