{{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.