backup emails
This commit is contained in:
parent
9bb327eada
commit
b3fd560ee1
|
|
@ -0,0 +1,83 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# KONFIGURATION (Dinge, die sich selten ändern)
|
||||||
|
# ==============================================================================
|
||||||
|
# Pfad zu deiner Rclone Config
|
||||||
|
RCLONE_CONFIG="/home/aknuth/.config/rclone/rclone.conf"
|
||||||
|
|
||||||
|
# Pfad zu den lokalen Mail-Daten (Source)
|
||||||
|
# Wenn du NUR buddelectric.net sichern willst, häng das hier an.
|
||||||
|
# Wenn du ALLE Domains sichern willst, lass es auf .../mail-data
|
||||||
|
SOURCE_PATH="/home/aknuth/git/email-amazon/DMS/docker-data/dms/mail-data/buddelectric.net"
|
||||||
|
|
||||||
|
# Log Datei
|
||||||
|
LOGFILE="/var/log/mail_backup.log"
|
||||||
|
|
||||||
|
# Lockfile (Verhindert doppeltes Ausführen)
|
||||||
|
LOCKFILE="/var/run/rclone_mail.lock"
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# PARAMETER CHECK
|
||||||
|
# ==============================================================================
|
||||||
|
REMOTE_NAME=$1
|
||||||
|
BUCKET_NAME=$2
|
||||||
|
|
||||||
|
if [[ -z "$REMOTE_NAME" || -z "$BUCKET_NAME" ]]; then
|
||||||
|
echo "FEHLER: Fehlende Parameter."
|
||||||
|
echo "Benutzung: sudo $0 <RCLONE_REMOTE_NAME> <BUCKET_NAME>"
|
||||||
|
echo "Beispiel: sudo $0 buddelectric buddelectric-mails"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# SICHERHEITS-CHECKS
|
||||||
|
# ==============================================================================
|
||||||
|
# Prüfen ob wir root sind (nötig für Zugriff auf Docker Files)
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "Dieses Skript muss als root ausgeführt werden (sudo)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prüfen ob Backup schon läuft
|
||||||
|
if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}` 2>/dev/null; then
|
||||||
|
echo "Backup läuft bereits. Breche ab."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Trap: Lockfile löschen bei Abbruch oder Ende
|
||||||
|
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
|
||||||
|
echo $$ > ${LOCKFILE}
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# BACKUP START
|
||||||
|
# ==============================================================================
|
||||||
|
echo "----------------------------------------------------------------" >> $LOGFILE
|
||||||
|
echo "START Backup: $(date)" >> $LOGFILE
|
||||||
|
echo "Quelle: $SOURCE_PATH" >> $LOGFILE
|
||||||
|
echo "Ziel: $REMOTE_NAME:$BUCKET_NAME" >> $LOGFILE
|
||||||
|
|
||||||
|
# Rclone Befehl
|
||||||
|
/usr/bin/rclone sync "$SOURCE_PATH" "$REMOTE_NAME:$BUCKET_NAME" \
|
||||||
|
--config "$RCLONE_CONFIG" \
|
||||||
|
--exclude "**/tmp/**" \
|
||||||
|
--exclude "*.lock" \
|
||||||
|
--exclude "dovecot-uidlist.lock" \
|
||||||
|
--exclude ".dovecot.lda-dupes" \
|
||||||
|
--transfers 32 \
|
||||||
|
--checkers 32 \
|
||||||
|
--fast-list \
|
||||||
|
--min-age 15m \
|
||||||
|
--log-file $LOGFILE \
|
||||||
|
--log-level INFO
|
||||||
|
|
||||||
|
EXIT_CODE=$?
|
||||||
|
|
||||||
|
if [ $EXIT_CODE -eq 0 ]; then
|
||||||
|
echo "STATUS: Erfolgreich abgeschlossen am $(date)" >> $LOGFILE
|
||||||
|
else
|
||||||
|
echo "STATUS: FEHLER (Exit Code $EXIT_CODE) am $(date)" >> $LOGFILE
|
||||||
|
fi
|
||||||
|
echo "----------------------------------------------------------------" >> $LOGFILE
|
||||||
|
|
||||||
|
exit $EXIT_CODE
|
||||||
Loading…
Reference in New Issue