#!/bin/bash # Backup-Ordner BACKUP_DIR="/mnt" # ccollect_logwrapper-Skript CCOLLECT_LOGWRAPPER="./ccollect_logwrapper.sh" # letzte Sicherung für Gruppe daily, weekly und monthly in Backup-Ordner ermitteln DATE_DAILY=` ls $BACKUP_DIR | grep daily | sort -r | sed -e'2,$d' | cut -f 2 -d.` DATE_WEEKLY=` ls $BACKUP_DIR | grep weekly | sort -r | sed -e'2,$d' | cut -f 2 -d.` DATE_MONTHLY=`ls $BACKUP_DIR | grep monthly | sort -r | sed -e'2,$d' | cut -f 2 -d.` DATE_YEARLY=` ls $BACKUP_DIR | grep yearly | sort -r | sed -e'2,$d' | cut -f 2 -d.` # Falls Leerstring diesen mit "altem Datum" füllen if [ -z "$DATE_DAILY" ] ; then DATE_DAILY="20000101-0101" ; fi if [ -z "$DATE_WEEKLY" ] ; then DATE_WEEKLY="20000101-0101" ; fi if [ -z "$DATE_MONTHLY" ] ; then DATE_MONTHLY="20000101-0101" ; fi if [ -z "$DATE_YEARLY" ] ; then DATE_YEARLY="20000101-0101" ; fi echo current: $DATE_CUR echo last daily: $DATE_DAILY echo last weekly: $DATE_WEEKLY echo last monthly: $DATE_MONTHLY echo last yearly: $DATE_YEARLY # Datum date-konform wandeln # Achtung: mit bash - nicht mit sh möglich! # Alternativ mit expr... konvertieren DATE_DAILY=${DATE_DAILY:0:4}-${DATE_DAILY:4:2}-${DATE_DAILY:6:2}" "${DATE_DAILY:9:2}:${DATE_DAILY:11:2}:00 DATE_WEEKLY=${DATE_WEEKLY:0:4}-${DATE_WEEKLY:4:2}-${DATE_WEEKLY:6:2}" "${DATE_WEEKLY:9:2}:${DATE_WEEKLY:11:2}:00 DATE_MONTHLY=${DATE_MONTHLY:0:4}-${DATE_MONTHLY:4:2}-${DATE_MONTHLY:6:2}" "${DATE_MONTHLY:9:2}:${DATE_MONTHLY:11:2}:00 DATE_YEARLY=${DATE_YEARLY:0:4}-${DATE_YEARLY:4:2}-${DATE_YEARLY:6:2}" "${DATE_YEARLY:9:2}:${DATE_YEARLY:11:2}:00 DATE_CUR=`date "+%Y-%m-%d %T"` # Bei Bedarf Backups durchführen if [ `date --date "$DATE_YEARLY" +%Y` -ne `date --date "$DATE_CUR" +%Y` ] then # Jahresbackup erzeugen echo monthly backup started source $CCOLLECT_LOGWRAPPER -a yearly elif [ `date --date "$DATE_MONTHLY" +%Y%m` -ne `date --date "$DATE_CUR" +%Y%m` ] then # Monatsbackup erzeugen echo monthly backup started source $CCOLLECT_LOGWRAPPER -a monthly elif [ `date --date "$DATE_WEEKLY" +%Y%W` -ne `date --date "$DATE_CUR" +%Y%W` ] then # Wochenbackup erzeugen echo weekly backup started source $CCOLLECT_LOGWRAPPER -a weekly elif [ `date --date "$DATE_DAILY" +%Y%j` -ne `date --date "$DATE_CUR" +%Y%j` ] then # Tagesbackup erzeugen echo daily backup started source $CCOLLECT_LOGWRAPPER -a daily else # nichts zu tun echo nothing to do fi