Backup-Script: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „<pre> #! /bin/bash #set -x function BackUp() { SRC=$1 TRG=$2 OPT="$3" NODE=$(basename $SRC) if [ -d $TRG/$NODE ] ; then date "+%Y.%m.%d %H:%M start $SRC -…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
/etc/anacrontab | |||
<pre> | |||
# 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 | |||
</pre> | |||
Backup-Script torro-backup.sh: | |||
<pre> | <pre> | ||
#! /bin/bash | #! /bin/bash | ||
LOG=/var/log/torro_bup.log | |||
function BackUp() | function BackUp() | ||
| Zeile 17: | Zeile 34: | ||
function MkSnapshot() | function MkSnapshot() | ||
{ | { | ||
PLACEHOLDER=$1 | |||
DEV=$2 | |||
PARENT=$3 | PARENT=$3 | ||
NAME="${PARENT}-$(date +$PLACEHOLDER)" | |||
FULL=/dev/$DEV/$VG/$NAME | FULL=/dev/$DEV/$VG/$NAME | ||
FOUND=$(lvdisplay $FULL 2>/dev/null| grep "LV Name") | FOUND=$(lvdisplay $FULL 2>/dev/null| grep "LV Name") | ||
echo $NAME | |||
if [ -n "$FOUND" ] ; then | if [ -n "$FOUND" ] ; then | ||
| Zeile 29: | Zeile 49: | ||
return | return | ||
else | else | ||
if [ -z "SILENT" ] ; then | if [ -z "$SILENT" ] ; then | ||
lvremove -f $FULL | lvremove -f $FULL | ||
else | else | ||
| Zeile 36: | Zeile 56: | ||
fi | fi | ||
fi | fi | ||
if [ -z "SILENT" ] ; then | if [ -z "$SILENT" ] ; then | ||
lvcreate -s -pr -L 128M -n$NAME /dev/$DEV/$VG/$PARENT | lvcreate -s -pr -L 128M -n$NAME /dev/$DEV/$VG/$PARENT | ||
else | else | ||
lvcreate -s -pr -L 128M -n$NAME /dev/$DEV/$VG/$PARENT >/dev/null | lvcreate -s -pr -L 128M -n$NAME /dev/$DEV/$VG/$PARENT >/dev/null | ||
fi | fi | ||
date "+%Y.%m.%d %H:%M snapshot $NAME" >>$LOG | |||
} | } | ||
| Zeile 54: | Zeile 75: | ||
;; | ;; | ||
dayly) | dayly) | ||
MkSnapshot "%a" torro320 data | |||
MkSnapshot "%a" torro250 bup-data "%a" | |||
MkSnapshot | |||
;; | ;; | ||
weekly) | weekly) | ||
MkSnapshot "week-%V" torro320 data | |||
MkSnapshot "week-%V" torro250 bup-data | |||
MkSnapshot | MkSnapshot "week-%V" torro250 opt | ||
;; | ;; | ||
monthly) | monthly) | ||
NAME=$(date "+data | NAME=$(date "+data-%b") | ||
MkSnapshot | MkSnapshot "%b" torro320 data | ||
MkSnapshot | MkSnapshot "%b" torro250 bup-data | ||
;; | ;; | ||
*) | *) | ||
| Zeile 74: | Zeile 92: | ||
;; | ;; | ||
esac | esac | ||
</pre> | </pre> | ||
Aktuelle Version vom 15. Dezember 2012, 09:47 Uhr
/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