From af948ea94c025b3df7e2df56cb958ffb5a86667f Mon Sep 17 00:00:00 2001 From: Marc Hoppe Date: Sat, 26 Mar 2011 20:46:59 +0100 Subject: [PATCH] dvd-archive rollout-skripte hinzu --- rollback.sh | 47 ++++++++++++++++++++++++++++++++++++++++++++++ rollbackd.sh | 3 +++ rolledoutdelete.sh | 37 ++++++++++++++++++++++++++++++++++++ rollout.sh | 36 +++++++++++++++++++++++++++++++++++ rolloutd.sh | 3 +++ 5 files changed, 126 insertions(+) create mode 100755 rollback.sh create mode 100755 rollbackd.sh create mode 100755 rolledoutdelete.sh create mode 100755 rollout.sh create mode 100755 rolloutd.sh diff --git a/rollback.sh b/rollback.sh new file mode 100755 index 0000000..0bfac78 --- /dev/null +++ b/rollback.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +set -x + +EXT_DRIVE=/media/hdext + +REC_DIR=$1 +VDR_DIR=`echo $REC_DIR | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}'` +REC_NAME=`echo $REC_DIR | awk -F/ '{print $(NF-1)}'` +REC_NAME2=`echo $REC_DIR | awk -F/ '{print $(NF)}'` + +mount $EXT_DRIVE + +if [ -f $EXT_DRIVE/vdrhd.num -a -f $REC_DIR/dvd.vdr ]; then + cmp $REC_DIR/dvd.vdr $EXT_DRIVE/vdrhd.num + if [ $? -eq 0 ]; then + svdrpsend.pl MESG "Zurückholen gestarted" +# EXT_DIR="$(find ${EXT_DRIVE} -name $REC_NAME)" + EXT_DIR="$(find ${EXT_DRIVE} -name $REC_NAME2)" + if [ -d "$EXT_DIR" ]; then + EXT_DIR_PAR=$(echo $EXT_DIR | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}') + echo "rsync $EXT_DIR/ $REC_DIR/" >> /tmp/rollout.log + echo "recname $REC_NAME $REC_NAME2" >> /tmp/rollout.log + rsync -av --include /[0.9]*\.vdr/ $EXT_DIR/ $REC_DIR/ + if [ $? -eq 0 ] ; then + rm $REC_DIR/dvd.vdr + rm -r $EXT_DIR_PAR + umount $EXT_DRIVE + svdrpsend.pl MESG "Zurückholen abgeschlossen" + exit + else + svdrpsend.pl MESG "Zurückholen fehlgeschlagen" + fi + else + svdrpsend.pl MESG "externe Aufnahme nicht gefunden" + fi + else + svdrpsend.pl MESG "Laufwerksnummer paßt nicht" + fi +else + svdrpsend.pl MESG "Kein DVD-Archive Laufwerk" +fi + +umount $EXT_DRIVE + + + diff --git a/rollbackd.sh b/rollbackd.sh new file mode 100755 index 0000000..41fc971 --- /dev/null +++ b/rollbackd.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "/usr/local/bin/rollback.sh $1" | at now diff --git a/rolledoutdelete.sh b/rolledoutdelete.sh new file mode 100755 index 0000000..d53c064 --- /dev/null +++ b/rolledoutdelete.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +set -x + +EXT_DRIVE=/mnt/hdext + +REC_DIR=$1 +VDR_DIR=`echo $REC_DIR | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}'` +REC_NAME=`echo $REC_DIR | awk -F/ '{print $(NF-1)}'` + +mount $EXT_DRIVE + +if [ -f $EXT_DRIVE/vdrhd.num -a -f $REC_DIR/dvd.vdr ]; then + cmp $REC_DIR/dvd.vdr $EXT_DRIVE/vdrhd.num + if [ $? -eq 0 ]; then + svdrpsend.pl MESG "Ausgelagert löschen gestarted" + EXT_DIR="$(find ${EXT_DRIVE} -name $REC_NAME)" + if [ -d "$EXT_DIR" ]; then + EXT_DIR_PAR=$(echo $EXT_DIR | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}') + rm -r $EXT_DIR_PAR + svdrpsend.pl MESG "löschen abgeschlossen" + umount $EXT_DRIVE + exit + else + svdrpsend.pl MESG "externe Aufnahme nicht gefunden" + fi + else + svdrpsend.pl MESG "Laufwerksnummer paßt nicht" + fi +else + svdrpsend.pl MESG "Kein DVD-Archive Laufwerk" +fi + +umount $EXT_DRIVE + + + diff --git a/rollout.sh b/rollout.sh new file mode 100755 index 0000000..c2e261c --- /dev/null +++ b/rollout.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -x + +echo $1 +DEST=/media/hdext +vdrarchivedir=/etc/vdr/archive + +svdrpsend.pl MESG "Auslagern gestartet" + +mount $DEST +SRC_DIR=`echo $1 | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}'` +echo DEST: $DEST + +#ls -l $DEST +if [ -f $DEST/vdrhd.num -a -d "$1" ]; then + hdnum=$(cat $DEST/vdrhd.num | head -n 1) + echo nice -n 19 rsync -av "$SRC_DIR" "$DEST" + nice -n 19 rsync -av "$SRC_DIR" "$DEST" + if [ $? -eq 0 ] ; then + find "$SRC_DIR" -name *.rec -exec cp $DEST/vdrhd.num {}/dvd.vdr \; + find $1 -name [0-9]*.vdr -exec rm {} \; + free=$( df -h | grep $DEST | awk '{print $4}' ) + [ -d $vdrarchivedir ] || mkdir -p $vdrarchivedir + echo "Hd:$hdnum Frei:$free ($(date))" > $vdrarchivedir/hd$hdnum.free + umount $DEST + svdrpsend.pl MESG "Auslagern abgeschlossen. $free frei" + exit + fi +else + svdrpsend.pl MESG "keine Auslagerfestplatte" +fi + +free=$( df -h | grep $DEST | awk '{print $4}' ) +umount $DEST +svdrpsend.pl MESG "Auslagern fehlgeschlagen. $free frei" diff --git a/rolloutd.sh b/rolloutd.sh new file mode 100755 index 0000000..bfec781 --- /dev/null +++ b/rolloutd.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +echo "/usr/local/bin/rollout.sh '$1' 2>&1 >> /tmp/vdrcommands.log" | at now