Seite 1 von 1
backup Skript lokal
Verfasst: Fr 5. Sep 2025, 17:28
von anno
Hallo,
ich habe ein Update Skript gebaut, das das Backup in einem lokalen Ordner ausführt. Somit kann man es z.B. für DropBox oder andere Cloud Dienste verwenden.
Alle Dateien sind mit Datum und Uhrzeit eindeutig benannt.
Re: backup Skript lokal
Verfasst: Fr 5. Sep 2025, 18:48
von pichel
Hallo Anno,
vielen Dank für diese Beiträge!
ich glaube, dieses Skript wird bestimmt gerne von anderen Anwenden benutzt.
Gruß,
Stefan
Re: backup Skript lokal
Verfasst: Fr 24. Okt 2025, 18:16
von Gerhard
Hallo,
Ich nutze auch Dropbox und habe das Skript entsprechend umgeschrieben, damit die Dateinamen einzigartig sind. O
neDrive und Dropbox kommen bei gleichen Namen durcheinander.
Code: Alles auswählen
#!/bin/bash
database="ordersprinter"
user="os_"
password="xyzxyzxyz"
serverbase="http://192.168.xxx.xxx:8080"
remoteaccesscode="xyzxyzxyz"
format="osb"
DIR="/home/benutzer/Dropbox/Backup"
KEEP=8
MAILTO="xxx.yyyy@zzzz.com"
# Logging-Variable
LOG=""
function log() {
echo "$1"
LOG="$LOG$1\n"
}
log "Backup gestartet: $(date '+%Y-%m-%d %H:%M:%S')"
cd "$DIR" || { log "FEHLER: Konnte nicht nach $DIR wechseln!"; echo -e "$LOG" | mail -s "Backup FEHLER $(date '+%Y-%m-%d %H:%M:%S')" $MAILTO; exit 1; }
for PATTERN in "kassenbuch-*.pdf" "db-dump-*.osb"; do
if compgen -G "$PATTERN" > /dev/null; then
COUNT=$(ls -1 $PATTERN 2>/dev/null | wc -l)
if [ "$COUNT" -gt "$KEEP" ]; then
ls -1tr $PATTERN | head -n $(($COUNT - KEEP)) | xargs -d '\n' rm --
log "Alte Dateien für Muster '$PATTERN' wurden gelöscht."
fi
fi
done
# Dateinamen für spätere Prüfung merken:
DBFILE="$DIR/db-dump-$(date '+%Y-%m-%d_%H-%M-%S').$format"
PDFILE="$DIR/kassenbuch-$(date '+%Y-%m-%d_%H-%M-%S').pdf"
# Sicherung der Datenbank über die OrderSprinter Backup-Funktion
wget --post-data "remoteaccesscode=$remoteaccesscode" \
-O "$DBFILE" \
"$serverbase/php/contenthandler.php?module=admin&command=autobackup" \
2>>/dev/null
if [ $? -eq 0 ]; then
log "Datenbank-Backup wurde heruntergeladen."
else
log "FEHLER beim Herunterladen des Datenbank-Backups!"
fi
chmod 777 "$DBFILE"
echo "$DBFILE"
# Sicherung des Kassenbuchs als PDF
wget --post-data "remoteaccesscode=$remoteaccesscode" \
-O "$PDFILE" \
"$serverbase/php/contenthandler.php?module=bill&command=autoBackupPdfSummary&lang=0" \
2>>/dev/null
if [ $? -eq 0 ]; then
log "Kassenbuch-PDF wurde heruntergeladen."
else
log "FEHLER beim Herunterladen des Kassenbuch-PDF!"
fi
chmod 777 "$PDFILE"
echo "$PDFILE"
# Integritätsprüfung der Backups:
ERROR=0
if [ ! -s "$DBFILE" ]; then
log "FEHLER: Die Datenbank-Backup-Datei ($DBFILE) existiert nicht oder ist leer!"
ERROR=1
else
log "Datenbank-Backup-Datei vorhanden und nicht leer."
fi
if [ ! -s "$PDFILE" ]; then
log "FEHLER: Die Kassenbuch-PDF-Datei ($PDFILE) existiert nicht oder ist leer!"
ERROR=1
else
log "Kassenbuch-PDF-Datei vorhanden und nicht leer."
fi
cd /
if [ $ERROR = 0 ]; then
SUBJECT="Backup erfolgreich $(date '+%Y-%m-%d %H:%M:%S')"
else
SUBJECT="Backup FEHLER $(date '+%Y-%m-%d %H:%M:%S')"
fi
echo -e "$LOG" | mail -s "$SUBJECT" $MAILTO
exit $ERROR
Wenn alles geklappt hat, schicke ich mir selbst eine E-Mail.
Allerdings bin ich mir nicht mehr ganz sicher, welche Anleitung ich benutzt habe.
https://www.ksite.de/blog/mailversand-m ... er-ubuntu/
Das sind meine Settings
Code: Alles auswählen
#sudo nano ~/.msmtprc
# GNU nano 7.2
#defaults
#auth on
#tls on
#tls_trust_file /etc/ssl/certs/ca-certificates.crt
#logfile ~/.msmtp.log
#
#account gmail
#host smtp.gmail.com
#port 587
#from xxxyyyy.zz@gmail.com
#user xxxyyyy.zz@gmail.com
#password xxxyyyyzzzzz
#
#account default : gmail
Viel Spaß beim Nachmachen!
LG Gerhard
Re: backup Skript lokal
Verfasst: Mo 27. Okt 2025, 09:55
von anno
Danke für die Erweiterung.
Ich werde es mal ausprobieren
