backup Skript lokal

Antwort erstellen

Bestätigungscode
Gib den Code genau so ein, wie du ihn siehst; Groß- und Kleinschreibung wird nicht unterschieden.
Smileys
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: backup Skript lokal

Re: backup Skript lokal

von anno » Mo 27. Okt 2025, 09:55

Danke für die Erweiterung.

Ich werde es mal ausprobieren :D

Re: backup Skript lokal

von Gerhard » Fr 24. Okt 2025, 18:16

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

von pichel » Fr 5. Sep 2025, 18:48

Hallo Anno,

vielen Dank für diese Beiträge!

ich glaube, dieses Skript wird bestimmt gerne von anderen Anwenden benutzt.

Gruß,

Stefan

backup Skript lokal

von anno » Fr 5. Sep 2025, 17:28

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.
Dateianhänge
backup-db-linux-local.zip
(913 Bytes) 108-mal heruntergeladen

Nach oben