#!/bin/bash
#############################
# Joomla Sync Configuration #
#############################
# Lokaler Home-Server (Parrot)
LOCAL_JOOMLA_PATH="/var/www/html"
LOCAL_DB_USER="joomlauser"
LOCAL_DB_PASS="Test123" # Aus configuration.php
LOCAL_DB_NAME="joomla5"
# Remote Alfahosting-Server
REMOTE_USER="h119517"
REMOTE_HOST="host179.alfahosting-server.de"
REMOTE_JOOMLA_PATH="~/html/aidoss"
REMOTE_DB_USER="h119517_joomlauser"
REMOTE_DB_PASS="0Wrssd&n8uW#"
REMOTE_DB_NAME="h119517_web643_13"
# Log-Datei
mkdir -p ~/logs
LOG_FILE="$HOME/logs/joomla-sync.log"
#############################
# Script Start #
#############################
echo "========================================" >> ${LOG_FILE}
echo "Joomla Sync gestartet: $(date)" >> ${LOG_FILE}
echo "========================================" >> ${LOG_FILE}
# 1. Dateien synchronisieren
echo "Synchronisiere Bilder..." >> ${LOG_FILE}
rsync -avz --delete ${LOCAL_JOOMLA_PATH}/images/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/images/ >> ${LOG_FILE} 2>&1
echo "Synchronisiere Media..." >> ${LOG_FILE}
rsync -avz --delete ${LOCAL_JOOMLA_PATH}/media/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/media/ >> ${LOG_FILE} 2>&1
# Optional: Auch neue Extensions/Templates synchronisieren
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/components/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/components/ >> ${LOG_FILE} 2>&1
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/modules/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/modules/ >> ${LOG_FILE} 2>&1
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/plugins/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/plugins/ >> ${LOG_FILE} 2>&1
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/templates/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/templates/ >> ${LOG_FILE} 2>&1
# 2. Datenbank-Tabellen exportieren (nur Inhalts-Tabellen)
echo "Exportiere Artikel-Datenbank..." >> ${LOG_FILE}
mysqldump -u "${LOCAL_DB_USER}" -p"${LOCAL_DB_PASS}" "${LOCAL_DB_NAME}" \
--tables \
xh3gh_content \
xh3gh_content_frontpage \
xh3gh_content_rating \
xh3gh_content_types \
xh3gh_categories \
xh3gh_tags \
xh3gh_contentitem_tag_map \
xh3gh_menu \
xh3gh_menu_types \
xh3gh_modules \
xh3gh_modules_menu \
> $HOME/tmp/joomla_content_sync.sql 2>> ${LOG_FILE}
if [ $? -eq 0 ]; then
echo "Datenbank-Export erfolgreich" >> ${LOG_FILE}
else
echo "FEHLER beim Datenbank-Export!" >> ${LOG_FILE}
exit 1
fi
# 3. SQL-Dump zum Remote-Server kopieren
echo "Übertrage Datenbank zum Remote-Server..." >> ${LOG_FILE}
scp $HOME/tmp/joomla_content_sync.sql ${REMOTE_USER}@${REMOTE_HOST}:~/tmp/
# 4. Auf Remote-Server importieren
echo "Importiere Datenbank auf Remote-Server..." >> ${LOG_FILE}
ssh ${REMOTE_USER}@${REMOTE_HOST} "mysql -u \"${REMOTE_DB_USER}\" -p\"${REMOTE_DB_PASS}\" \"${REMOTE_DB_NAME}\" < ~/tmp/joomla_content_sync.sql && rm ~/tmp/joomla_content_sync.sql"
# 5. Lokale temporäre Datei löschen
rm $HOME/tmp/joomla_content_sync.sql
echo "Sync abgeschlossen: $(date)" >> ${LOG_FILE}
echo "" >> ${LOG_FILE}