{{tag> backup cronjob}}
====== Zeitplanung bei Backups ======
Die Zeitplanung (contab) kann als root am Server mit folgendem Befehl editiert werden:
crontab -e
Standardmäßig ist folgendes eingestellt:
* jeden Monat zum 1. ein Full-Backup um 1.00 Uhr
* jeden Monat zum 9., 17., 25. ein Diff-Backup um 2.00 Uhr
* jeden Monat zu den anderen Tagen ein Inc-Backup um 3.00 Uhr
0 1 1 * * /usr/sbin/linuxmuster-backup --full
0 2 9,17,25 * * /usr/sbin/linuxmuster-backup --diff
0 3 2-8,10-16,18-24,26-31 * * /usr/sbin/linuxmuster-backup --inc
**Problem:** Falls das Backup, insbesondere das Full-Backup länger als 6 Stunden dauert, kollidiert es mit der Schulzeit am 1. eines Monats. \\
**Lösung:** das Full-Backup immer am 1. Samstag im Monat um 22.30 Uhr starten:
30 22 * * 6 [ `date +\%e` -le 7 ] && /usr/sbin/linuxmuster-backup --full
30 23 * * 6 [ `date +\%e` -gt 7 ] && /usr/sbin/linuxmuster-backup --diff
30 1 * * 2,3,4,5 /usr/sbin/linuxmuster-backup --inc
**Variante HEMS:** An allen Tagen wird ein incrementelles Backup erstellt außer Freitags. Freitags wird ein differentielles Backup erstellt, am letzten Freitag im Monat ein Full-Backup.
Die Zeilen in der crontab sehen so aus:
35 23 * * 5 /usr/sbin/freitag_backup
36 23 * * 0-4,6 /usr/sbin/linuxmuster-backup --inc
**Das Skript "freitag_backup":**
#!/bin/bash
let when=`cal | cut -d ' ' -f6 | egrep "[0-9]{2}" | tail -n1`
#let when=`cal | cut -d ' ' -f6 | perl -ne 'print if /\d+/' | tail -n1`
# echo $when
let now=`date "+%d" | perl -pe 's/^0//'`
#let now=`date "+%d"`
# echo $now
if [ $when -eq $now ]; then
echo "doing linuxmuster-backup --full"
/usr/sbin/linuxmuster-backup --full
else
echo "doing linuxmuster-backup --diff."
/usr/sbin/linuxmuster-backup --diff
fi
**Hinweis:**
Das Skript "freitag_backup" muss ausführbar gemacht werden und muss sich im Verzeichnis /usr/sbin/ befinden, ansonsten müsste der Pfad in der crontab angepasst werden.