Backup-Script
Zur Navigation springen
Zur Suche springen
/etc/anacrontab
# These replace cron's entries # format: # mode delay label command # mode:1: dayly 7: weekly 30: monthly N: any N days 1 5 cron.daily run-parts --report /etc/cron.daily 7 10 cron.weekly run-parts --report /etc/cron.weekly @monthly 15 cron.monthly run-parts --report /etc/cron.monthly 1 3 backup.dayly /home/bin/torro/torro-backup.sh dayly 7 4 backup.weekly /home/bin/torro/torro-backup.sh weekly 30 4 backup.monthly /home/bin/torro/torro-backup.sh monthly
Backup-Script torro-backup.sh:
#! /bin/bash LOG=/var/log/torro_bup.log function BackUp() { SRC=$1 TRG=$2 OPT="$3" NODE=$(basename $SRC) if [ -d $TRG/$NODE ] ; then date "+%Y.%m.%d %H:%M start $SRC -> $TRG" >>/var/log/torro_bup.log rsync -ru $OPT $SRC $TRG date "+%Y.%m.%d %H:%M end $SRC" >>/var/log/torro_bup.log fi } function MkSnapshot() { PLACEHOLDER=$1 DEV=$2 PARENT=$3 NAME="${PARENT}-$(date +$PLACEHOLDER)" FULL=/dev/$DEV/$VG/$NAME FOUND=$(lvdisplay $FULL 2>/dev/null| grep "LV Name") echo $NAME if [ -n "$FOUND" ] ; then FOUND=$(lvdisplay $FULL | grep "read only") if [ -z "$FOUND" ] ; then echo "Not a read only devide: $FULL Aborting" return else if [ -z "$SILENT" ] ; then lvremove -f $FULL else lvremove -f $FULL >/dev/null fi fi fi if [ -z "$SILENT" ] ; then lvcreate -s -pr -L 128M -n$NAME /dev/$DEV/$VG/$PARENT else lvcreate -s -pr -L 128M -n$NAME /dev/$DEV/$VG/$PARENT >/dev/null fi date "+%Y.%m.%d %H:%M snapshot $NAME" >>$LOG } SILENT=$2 case "$1" in hourly) BackUp /home /media/data/backup "--delete $2" ;; hourly2) mount /media/bup_data BackUp /media/data /media/bup-data "--delete $2" ;; dayly) MkSnapshot "%a" torro320 data MkSnapshot "%a" torro250 bup-data "%a" ;; weekly) MkSnapshot "week-%V" torro320 data MkSnapshot "week-%V" torro250 bup-data MkSnapshot "week-%V" torro250 opt ;; monthly) NAME=$(date "+data-%b") MkSnapshot "%b" torro320 data MkSnapshot "%b" torro250 bup-data ;; *) echo "usage: torro-backup.sh { hourly | hourly2 | dayly | weekly | monthly }" ;; esac