1 |
--- smeserver-affa-0.9.0/root/sbin/e-smith/affa.trapsignals 2008-03-09 12:22:22.000000000 +0100 |
2 |
+++ smeserver-affa-0.9.0/root/sbin/e-smith/affa 2008-03-09 13:15:31.000000000 +0100 |
3 |
@@ -2490,6 +2490,12 @@ |
4 |
|
5 |
my $affastatus = esmith::DB::db->open("/home/e-smith/db/affa-report/$jobname"); |
6 |
my $size=$affastatus->get_prop( $archive, 'TotalFileSize' ) || 0; |
7 |
+ if( not $size ) |
8 |
+ { |
9 |
+ updateReportDB(); |
10 |
+ $affastatus = esmith::DB::db->open("/home/e-smith/db/affa-report/$jobname"); |
11 |
+ $size=$affastatus->get_prop( $archive, 'TotalFileSize' ) || 0; |
12 |
+ } |
13 |
$size =~ s/(\d*).*/$1/; |
14 |
my $f; |
15 |
my $restore_list=''; |
16 |
--- smeserver-affa-0.9.0/root/usr/lib/affa/create-backup-file.sh.trapsignals 2008-03-09 12:24:13.000000000 +0100 |
17 |
+++ smeserver-affa-0.9.0/root/usr/lib/affa/create-backup-file.sh 2008-03-09 13:13:41.000000000 +0100 |
18 |
@@ -14,36 +14,58 @@ |
19 |
BASENAME=`basename $OUTFILE` |
20 |
SIZE=$6 |
21 |
|
22 |
-PIPE=/tmp/affa.$$.$(date +%s) |
23 |
-mkfifo $PIPE |
24 |
+ |
25 |
+errorexit() |
26 |
+ { |
27 |
+ STATUS=$? |
28 |
+ if [ ! -z $1 ] ; then |
29 |
+ STATUS=$1 |
30 |
+ fi |
31 |
+ echo |
32 |
+ test -f $OUTFILE && rm -f $OUTFILE |
33 |
+ rm -f $OUTFILE.md5sum $PIPE |
34 |
+ exit $STATUS |
35 |
+ } |
36 |
+ |
37 |
+verifyint() |
38 |
+ { |
39 |
+ echo "Verify terminated by user" |
40 |
+ rm -f $OUTFILE.md5sum $PIPE |
41 |
+ exit 0 |
42 |
+ } |
43 |
+ |
44 |
+trap errorexit SIGTERM SIGINT ERR |
45 |
|
46 |
echo "Writing $OUTFILE" |
47 |
-(md5sum < $PIPE & /bin/tar -C $ROOTDIR/$JOB/$ARCHIVE -cf - $RESTORE | /usr/bin/pv -i 0.3 -s $SIZE | /bin/gzip | tee $PIPE > $OUTFILE) > $OUTFILE.md5sum |
48 |
+PIPE=/tmp/affa.$$.$(date +%s) |
49 |
+rm -f $PIPE |
50 |
+mkfifo $PIPE |
51 |
+(md5sum < $PIPE & /bin/tar -C $ROOTDIR/$JOB/$ARCHIVE -cf - $RESTORE | /usr/bin/pv -i 0.3 -s $SIZE | /bin/gzip --fast | tee $PIPE > $OUTFILE) > $OUTFILE.md5sum |
52 |
|
53 |
STATUS=$? |
54 |
if [ $STATUS != 0 ] ; then |
55 |
- test -f $OUTFILE && rm -f $OUTFILE |
56 |
- rm -f $OUTFILE.md5sum $PIPE |
57 |
- exit $STATUS |
58 |
+ errorexit $STATUS |
59 |
fi |
60 |
|
61 |
-GSIZE=$(find $OUTFILE -printf "%s") |
62 |
+trap verifyint SIGTERM SIGINT |
63 |
+ |
64 |
+rm -f $PIPE |
65 |
|
66 |
-CR=$(echo "scale=5; $SIZE/$GSIZE" | bc) |
67 |
-SPACESAVING=$(echo "scale=5; 100-$GSIZE/$SIZE*100" | bc) |
68 |
-printf "Compression Ratio: %.1f (%.1f %%)\n" $CR $SPACESAVING |
69 |
+GSIZE=$(find $OUTFILE -printf "%s") |
70 |
+if [ $SIZE -gt 0 ] ; then |
71 |
+ CR=$(echo "scale=5; $SIZE/$GSIZE" | bc) |
72 |
+ SPACESAVING=$(echo "scale=5; 100-$GSIZE/$SIZE*100" | bc) |
73 |
+ printf "Compression Ratio: %.1f (%.1f %%)\n" $CR $SPACESAVING |
74 |
+fi |
75 |
|
76 |
-echo "Verifying $OUTFILE" |
77 |
+echo "Verifying $OUTFILE (hit CTRL-C to skip)" |
78 |
cat $OUTFILE | /usr/bin/pv -i 0.1 -s $GSIZE | md5sum --status -c $OUTFILE.md5sum |
79 |
STATUS=$? |
80 |
if [ $STATUS != 0 ] ; then |
81 |
echo "Verify FAILED" |
82 |
- test -f $OUTFILE && rm -f $OUTFILE |
83 |
- rm -f $OUTFILE.md5sum $PIPE |
84 |
- exit $STATUS |
85 |
+ errorexit $STATUS |
86 |
fi |
87 |
|
88 |
cat $OUTFILE.md5sum | sed -e s/-/$BASENAME/ > $OUTFILE.md5sum |
89 |
|
90 |
-rm -f $PIPE |
91 |
exit 0 |