diff options
author | Gavin Romig-Koch <gavin@localhost.localdomain> | 2009-08-15 11:21:23 -0400 |
---|---|---|
committer | Gavin Romig-Koch <gavin@localhost.localdomain> | 2009-08-15 11:21:23 -0400 |
commit | e821a147b7f23845bf78f15110efe770e7d4f74c (patch) | |
tree | a5a048dcbe780b4d206781a120c7ab71d408ca45 | |
parent | 955cde6bbb43f6854c07bcc773c2152d77ccfd26 (diff) | |
download | fastback-e821a147b7f23845bf78f15110efe770e7d4f74c.tar.gz fastback-e821a147b7f23845bf78f15110efe770e7d4f74c.tar.xz fastback-e821a147b7f23845bf78f15110efe770e7d4f74c.zip |
add fastback-unload-receipt, fastback-check, and fetch-from-indus
-rwxr-xr-x | fastback-check | 78 | ||||
-rwxr-xr-x | fastback-unload-receipt | 79 | ||||
-rwxr-xr-x | fetch-from-indus | 8 |
3 files changed, 165 insertions, 0 deletions
diff --git a/fastback-check b/fastback-check new file mode 100755 index 0000000..4d41532 --- /dev/null +++ b/fastback-check @@ -0,0 +1,78 @@ +#!/bin/bash + +ORIG=$1 + +if [ ! -e $ORIG ]; then + echo >&2 "Error: no such file $ORIG" + exit 2 +fi + +if [ "$2" = "encrypt" ]; then + DO_ENCRYPT="-e" + shift +else + DO_ENCRYPT="" +fi + +if [ "$2" = "" ]; then + DO_TICKET= +elif [ "$2" = "new" ]; then + DO_TICKET="-n" +else + DO_TICKET="-t $2" +fi + +RECEIPT=GLRK-receipt +./fastback $DO_TICKET $DO_ENCRYPT $ORIG >$RECEIPT + +if [ ! -e $RECEIPT ]; then + echo >&2 "Error: no such file $RECEIPT" + exit 2 +fi + +cat $RECEIPT | while read FIRST REST ; do + #echo "FIRST:" $FIRST + #echo "REST:" $REST + + if [ "$FIRST" = "FILE:" ]; then + export FILE=$REST + if [ -z "$FILE" ]; then + echo >&2 "Error: file name missing from \"FILE:\" line" + exit 2 + fi + #echo found FILE: $FILE + fi + if [ "$FIRST" = "END:" ]; then + if [ -z "$FILE" ]; then + echo >&2 "Error: no file name found in receipt: $RECEIPT" + exit 2 + fi + + ./fetch-from-indus $FILE + + ./unload-receipt $RECEIPT + + FETCHED=${FILE%.aes} + + # if the fetched file has a trailing .gz + # but the orig doesn't then assume fastback did compression + # and use zdiff to do compare + if [ "$FETCHED" != "${FETCHED%.gz}" -a "$ORIG" = "${ORIG%.gz}" ]; then + if ! zdiff $ORIG $FETCHED ; then + echo "differ: ORIG ($ORIG) and FETCHED ($FETCHED)" + else + echo "same: ORIG: ($ORIG) and FETCHED ($FETCHED)" + rm GLRK* + fi + else + # otherwize just use diff + if ! diff $ORIG $FETCHED ; then + echo "differ: ORIG ($ORIG) and FETCHED ($FETCHED)" + else + echo "same: ORIG: ($ORIG) and FETCHED ($FETCHED)" + rm GLRK* + fi + fi + fi +done + diff --git a/fastback-unload-receipt b/fastback-unload-receipt new file mode 100755 index 0000000..b9b2f61 --- /dev/null +++ b/fastback-unload-receipt @@ -0,0 +1,79 @@ +#!/bin/bash + +RECEIPT=$1 + +if [ "$2" = "" ]; then + DO_FETCH=false +elif [ "$2" = "fetch" ]; then + DO_FETCH=true +else + echo >&2 "Error: invalid second argument: $2" + exit 2 +fi + +if [ ! -e $RECEIPT ]; then + echo >&2 "Error: no such file $RECEIPT" + exit 2 +fi + +cat $RECEIPT | while read FIRST REST ; do + #echo "FIRST:" $FIRST + #echo "REST:" $REST + + if [ "$FIRST" = "FILE:" ]; then + export FILE=$REST + if [ -z "$FILE" ]; then + echo >&2 "Error: file name missing from \"FILE:\" line" + exit 2 + fi + #echo found FILE: $FILE + fi + if [ "$FIRST" = "MD5SUM:" ]; then + if ! read MD5LINE; then + echo >&2 "Error: unable to read MD5SUM" + exit 2 + fi + #echo found MD5LINE: $MD5LINE + fi + if [ "$FIRST" = "KEY:" ]; then + KEYCODE=$REST + if [ -z "$KEYCODE" ]; then + echo >&2 "Error: key code name missing from \"KEY:\" line" + exit 2 + fi + if ! read KEYLINE; then + echo >&2 "Error: unable to read encryption key" + exit 2 + fi + #echo found KEY: $KEYCODE $KEYLINE + fi + if [ "$FIRST" = "END:" ]; then + if [ -z "$FILE" ]; then + echo >&2 "Error: no file name found in receipt: $RECEIPT" + exit 2 + fi + + if $DO_FETCH; then + ./fetch-from-indus $FILE + fi + + if [ -z "$MD5LINE" ]; then + echo >&2 "Error: no md5sum found in receipt: $RECEIPT" + exit 2 + else + #echo "MD5LINE:$MD5LINE" + echo "\"md5sum --check\" reports:" + echo "$MD5LINE" | md5sum --check - + fi + + if [ ! -z "$KEYLINE" ]; then + OUTFILE=${FILE%.aes} + if [ "$OUTFILE" = "$FILE" ]; then + OUTFILE=$FILE.decoded + fi + if openssl $KEYCODE -d -in $FILE -out $OUTFILE -pass pass:$KEYLINE; then + echo decode file writen to $OUTFILE + fi + fi + fi +done diff --git a/fetch-from-indus b/fetch-from-indus new file mode 100755 index 0000000..cae7ee1 --- /dev/null +++ b/fetch-from-indus @@ -0,0 +1,8 @@ +#!/bin/bash + + + +scp root@indus.usersys.redhat.com:/var/ftp/incoming/$1 . +#echo "this is junk" >$1 + + |