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