Some checks failed
odoo-restore-open_workshop-install / run-odoo-backup-in-docker (push) Failing after 4m49s
62 lines
3.2 KiB
Bash
62 lines
3.2 KiB
Bash
#!/bin/bash
|
||
BACKUP_DIR=/root # Verzeichnis, in dem das Backup temporär gespeichert wird.
|
||
#MONITOR_URL='https://cronitor.link/p/c6debfe4e00f46fe9eb430ab9d2b2588/7PPIpd' # Cronitor-URL zur Überwachung des Skriptstatus.
|
||
ODOO_DATABASE=hobbyhimmel # Der Name der Odoo-Datenbank, die wiederhergestellt werden soll.
|
||
DEFAULT_URL="http://hobbybackend2.fritz.box:9013" # Standard-URL für die Odoo-Datenbank-Backup-API.
|
||
URL="${1:-$DEFAULT_URL}" # Falls ein Argument übergeben wird, wird es als URL genutzt, sonst bleibt die Standard-URL.
|
||
BACKUP_NAME=${ODOO_DATABASE}.latest.zip # Der Name der Backup-Datei, wobei das aktuelle Datum an den Namen angehängt wird.
|
||
remote_directory=/www/htdocs/${sftp_user}/odoo # Das Verzeichnis auf dem Remote-SFTP-Server, in dem die Backups gespeichert werden.
|
||
|
||
# Function to report failure to Cronitor with step
|
||
# Diese Funktion meldet einen Fehler an Cronitor und beendet das Skript.
|
||
# Parameter: $1 - Der Schrittname, der beim Fehlschlag gemeldet wird.
|
||
report_failure() {
|
||
local step=$1 # Schrittname wird als erster Parameter übergeben.
|
||
echo "Error during $step" # Meldet den Fehler.
|
||
#curl "$MONITOR_URL?state=fail&message=$step" # Meldet den Fehlerstatus an Cronitor.
|
||
exit 1 # Beendet das Skript mit Exit-Code 1 (Fehler).
|
||
}
|
||
|
||
echo "Restoring Odoo database from backup..." # Meldet den Beginn der Wiederherstellung der Odoo-Datenbank.
|
||
echo "Verbindungsdaten: ${sftp_password}, ssh-${sftp_user}, ${sftp_host}"
|
||
|
||
cd /root # Wechselt in das Home-Verzeichnis des Benutzers.
|
||
# Holt die verschlüsselte Backup-Datei vom Remote-SFTP-Server in das lokale Verzeichnis.
|
||
sshpass -p "${sftp_password}" sftp -i ~/.ssh/id_rsa ssh-${sftp_user}@${sftp_host}:${remote_directory} <<EOF
|
||
get ${BACKUP_NAME}.gpg
|
||
get ${BACKUP_NAME}
|
||
EOF
|
||
# Prüft, ob der vorherige Befehl erfolgreich war, sonst bricht das Skript ab.
|
||
if [ $? -ne 0 ]; then
|
||
report_failure "SFTP transfer"
|
||
fi
|
||
cd /root
|
||
|
||
# Backup entschlüsseln -> Funktioniert nicht, weil im Passwort ein ´ enthalten ist
|
||
#rm ${BACKUP_NAME}
|
||
#gpg --batch --yes --passphrase "{$gpg_password}" --output "${BACKUP_DIR}/${BACKUP_NAME}" --decrypt "${BACKUP_DIR}/${BACKUP_NAME}.gpg"
|
||
|
||
echo "Admin password: ${ADMIN_PASSWORD}" # Meldet das Admin-Passwort.
|
||
echo "Database name: ${ODOO_DATABASE}" # Meldet den Namen der Odoo-Datenbank.
|
||
echo "Backup name: ${BACKUP_NAME}" # Meldet den Namen der Backup-Datei.
|
||
echo "URL: ${URL}" # Meldet die URL der Odoo-Datenbank-Backup-API.
|
||
echo "Backup directory: ${BACKUP_DIR}" # Meldet das Verzeichnis, in dem das Backup gespeichert wird.
|
||
echo "Delete database: ${ODOO_DATABASE}" # Meldet, dass die Datenbank gelöscht wird.
|
||
curl -X POST -s \
|
||
-F "master_pwd=${ADMIN_PASSWORD}" \
|
||
-F "name=${ODOO_DATABASE}" \
|
||
${URL}/web/database/drop || report_failure "Database deletion"
|
||
|
||
echo "Restoring database..." # Meldet den Beginn der Wiederherstellung der Datenbank.
|
||
curl \
|
||
-F "master_pwd=${ADMIN_PASSWORD}" \
|
||
-F "name=${ODOO_DATABASE}" \
|
||
-F "backup_file=@${BACKUP_DIR}/${BACKUP_NAME}" \
|
||
-F "backup_format=zip" \
|
||
-F "copy=true" \
|
||
${URL}/web/database/restore || report_failure "Database restoration"
|
||
|
||
# If everything was successful, report completion
|
||
# Meldet den erfolgreichen Abschluss des Skripts an Cronitor.
|
||
#curl "$MONITOR_URL?state=complete"
|