X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=bpcdump;h=efb845621750ccc9bf83b0bfc5b340144eadf2d6;hb=HEAD;hp=2978e53430444dfe76d1ce3d466aa557f5580205;hpb=4113a0439950beb348322626fd0890221155932c;p=ovzbpc.git diff --git a/bpcdump b/bpcdump index 2978e53..efb8456 100755 --- a/bpcdump +++ b/bpcdump @@ -19,21 +19,29 @@ VEDEV=/dev/vg0/ve$VEID VEMNT=/var/lib/vz/private/$VEID EXTFS=/media/esata unset WRITEPAR -INFO=/dev/null export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:$PATH SCRIPT_EXT="conf start stop mount umount" CONF_DIR=/etc/vz/conf +INFO=$(mktemp -q /tmp/bpcdump.XXXXX) # FUNCTIONS info() { - echo "$*" | tee -a "$INFO" + if [ -n "$INFO" ]; then + echo "$*" | tee -a "$INFO" + else + echo "$*" + fi } error() { - echo "$*" | tee -a "$INFO" >&2 + if [ -n "$INFO" ]; then + echo "$*" | tee -a "$INFO" >&2 + else + echo "$*" + fi } restartve() @@ -62,12 +70,12 @@ cleanup() [ -z "$msg" ] && msg=undef restartve if [ "$ret" = "0" ]; then - info "$(date)" + info "Backup completed on $(date)" info "cleanup message: $msg" info "exit $ret" touch "$EXTVEIDFS/good" else - error "$(date)" + error "Backup TERMINATED on $(date)" error "cleanup message: $msg" error "exit $ret" touch "$EXTVEIDFS/bad" @@ -78,6 +86,17 @@ cleanup() # MAIN +STARTDATE=$(date) +cat > "$INFO" <<+EOF+ +Date: $STARTDATE +VEID: $VEID +Volume: $VEDEV +dd_rescue log: ddrlog +dd_rescue bad blocks: ddrbb +image file: image + ++EOF+ + trap "cleanup 1 \"termination by signal\"" SIGINT SIGTERM if [ $(whoami) != "root" ]; then @@ -177,22 +196,14 @@ if [ -d "$EXTVEIDFS" ]; then else rm -rf "$EXTVEIDFS" fi -mkdir "$EXTVEIDFS" -date > "$EXTVEIDFS/begin" -if ! cd "$EXTVEIDFS"; then - cleanup 1 "cannot change into $EXTVEIDFS directory" -fi +mkdir "$EXTVEIDFS" || cleanup 1 "cannot mkdir $EXTVEIDFS/" +cd "$EXTVEIDFS" || cleanup 1 "cannot cd into $EXTVEIDFS/" +echo "$STARTDATE" > "$EXTVEIDFS/begin" +# Move temporary INFO file to its permanent home within $EXTVEIDFS +mv "$INFO" "$EXTVEIDFS/info" || cleanup 1 "cannot mv file to $EXTVEIDFS/" INFO="$EXTVEIDFS/info" -cat > "$INFO" <<+EOF+ -Date: $(date) -VEID: $VEID -Volume: $VEDEV -dd_rescue log: ddrlog -dd_rescue bad blocks: ddrbb -image file: image -+EOF+ info "copy $VEID device $VEDEV to $EXTVEIDFS/image" time dd_rescue -Aqy 8192 -l "$EXTVEIDFS/ddrlog" -o "$EXTVEIDFS/ddrbb" \ $VEDEV "$EXTVEIDFS/image"