diff --git a/sh_scripts/mail_backup.sh b/sh_scripts/mail_backup.sh index dd7985a..5a96a05 100644 --- a/sh_scripts/mail_backup.sh +++ b/sh_scripts/mail_backup.sh @@ -1,10 +1,54 @@ #!/bin/bash -echo "Version: 0.1" -echo "Mailserver Backup (for Mailcow)" -echo "for Hetzner StorageBox! (at a Moment)" +# Quell- und Zielverzeichnis +quelle_verzeichnis="/opt/Backups/" +ziel_verzeichnis="mail-johanneskr/" +# Rclone-Konfigurationsname +rclone_konfig="remote" +# Telegram Bot Token und Chat ID +telegram_bot_token="YOUR_TELEGRAM_BOT_TOKEN" +telegram_chat_id="YOUR_CHAT_ID" -# MAILCOW_BACKUP_LOCATION=/opt/mailcow-dockerized/Backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all --delete-days 7 -sshpass -p 'password' rsync --progress -e 'ssh -p23 -o StrictHostKeyChecking=no' --recursive /opt/mailcow-dockerized/Backup/ uXXX-subXXX@uXXX.your-storagebox.de:./ -echo "Finish" +# Funktion, um eine Nachricht an Telegram zu senden +send_telegram_message() { + local message=$1 + curl -s -X POST "https://api.telegram.org/bot$telegram_bot_token/sendMessage" -d chat_id="$telegram_chat_id" -d text="$message" +} + +# Mailcow Backup durchführen +echo "Starte Mailcow Backup..." +MAILCOW_BACKUP_LOCATION=/opt/Backups /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all --delete-days 2 > backup.log 2>&1 + +# Überprüfen, ob das Mailcow Backup erfolgreich war +if [ $? -eq 0 ]; then + echo "Mailcow Backup erfolgreich." +else + echo "Fehler beim Mailcow Backup." + error_message=$(tail -n 20 backup.log) + send_telegram_message "Fehler beim Mailcow Backup:\n$error_message" + echo "Fehler beim Mailcow Backup. Logs wurden gesendet." | mailx -s "FEHLER - Mail-Backup" -S smtp="smtp://mail.johanneskr.de:465" -S smtp-auth=login -S smtp-auth-user="dein_username" -S smtp-auth-password="dein_passwort" -S from="Backup Script " deine_email@domain.de + exit 1 +fi + +# Rclone-Befehl zum Kopieren des Verzeichnisses +echo "Die Daten werden jetzt auf den S3 Speicher hochgeladen" +sleep "5" +rclone copy "$quelle_verzeichnis" "$rclone_konfig":"$ziel_verzeichnis" + +# Überprüfen, ob der Upload erfolgreich war +if [ $? -eq 0 ]; then + echo "Backup erfolgreich auf S3 hochgeladen." + # E-Mail-Benachrichtigung über SMTP senden + echo "Backup erfolgreich auf S3 hochgeladen." | mailx -s "ERFOLG - Mail-Backup" -S smtp="smtp://mail.johanneskr.de:465" -S smtp-auth=login -S smtp-auth-user="dein_username" -S smtp-auth-password="dein_passwort" -S from="Backup Script " deine_email@domain.de + # Telegram-Benachrichtigung senden + send_telegram_message "[mail.johanneskr.de] Backup erfolgreich auf S3 hochgeladen." +else + echo "Fehler beim Hochladen des Backups auf S3." + # E-Mail-Benachrichtigung über SMTP senden + echo "Backup-Prozess auf mail.johanneskr.de fehlgeschlagen." | mailx -s "FEHLER - Mail-Backup" -S smtp="smtp://mail.johanneskr.de:465" -S smtp-auth=login -S smtp-auth-user="dein_username" -S smtp-auth-password="dein_passwort" -S from="Backup Script " deine_email@domain.de + # Telegram-Benachrichtigung senden + send_telegram_message "[mail.johanneskr.de] Fehler beim Hochladen des Backups auf S3." +fi + +echo "Backup-Prozess abgeschlossen."