source: trunk/MagicSoft/Mars/datacenter/scripts/checkmd5sum@ 9113

Last change on this file since 9113 was 8886, checked in by snruegam, 17 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 4.1 KB
Line 
1#!/bin/bash
2#
3# ========================================================================
4#
5# *
6# * This file is part of MARS, the MAGIC Analysis and Reconstruction
7# * Software. It is distributed to you in the hope that it can be a useful
8# * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
9# * It is distributed WITHOUT ANY WARRANTY.
10# *
11# * Permission to use, copy, modify and distribute this software and its
12# * documentation for any purpose is hereby granted without fee,
13# * provided that the above copyright notice appear in all copies and
14# * that both that copyright notice and this permission notice appear
15# * in supporting documentation. It is provided "as is" without express
16# * or implied warranty.
17# *
18#
19#
20# Author(s): Stefan Ruegamer 05/2007 <mailto:snruegam@astro.uni-wuerzburg.de>
21#
22# Copyright: MAGIC Software Development, 2000-2008
23#
24#
25# ========================================================================
26#
27# This script is checking the md5 sums of files read from tape. It
28# computes the checksums for the extracted files and compares them with
29# the checksums from La Palma, read out from the md5 sum file which is
30# transferred together with the logfile.
31#
32# The script will be automised by being executed after reading tapes with
33# the not-yet finished script readlapalmatapes. At the moment it is being
34# executed by hand.
35#
36
37echo "Please specify the tape number (e.g. 3MG005)."
38read no
39echo "Thank you. Your query is being processed. This may take some time."
40
41checkpath=/home/lapalma/tapecont/cont/muxdata/checksums
42file=/home/lapalma/tapecont/cont/muxdata/tape_${no}L*.md5
43L=`echo $file | cut -c49`
44id=${no}L${L}
45
46if [ ! -f $file ]
47then
48 echo "tape $file not found -> aborting"
49 exit
50fi
51
52if [ -f ${checkpath}/tape_${id}.md5.lapalma ] || [ -f ${checkpath}/tape_${id}.md5.wue ]
53then
54 echo "Output files already existing. Are you sure you wish to continue (yes/no)?"
55 read cont
56 if [ ! $cont == "yes" ]
57 then
58 echo "Aborting."
59 exit
60 fi
61fi
62
63date | tee ${checkpath}/tape_${id}.md5.lapalma | tee ${checkpath}/tape_${id}.md5.wue
64
65# read the tapecont file line by line
66while read line
67do
68 muxchk=`echo $line | cut -d/ -f1`
69 type=`echo $line | cut -d_ -f7 | cut -c0-5`
70 # only check muxdata rawfiles, not cc-, caco- or drivelog-files
71 if [ "$muxchk" = "muxdata" ] && [ "$type" = "E.raw" ]
72 then
73 sum=($line)
74
75 # check if the file has been extracted from tape; if not, don't write anything to the logfiles (so they can still be compared)
76 if [ ! -f /magic/datacenter/fromtape/${sum[0]} ] && [ ! -f /data/fromtape/${sum[0]} ]
77 then
78 echo "File ${sum[0]} does not exist."
79 continue
80 fi
81
82 # reformat the files and checksums correctly and compare them
83 echo "${sum[1]} ${sum[0]}" >> ${checkpath}/tape_${id}.md5.lapalma
84
85 if [ ! -f /magic/datacenter/fromtape/${sum[0]} ]
86 then
87 ssh -nx phoenix nice -n 19 /opt/csw/bin/gmd5sum /data/fromtape/${sum[0]} | sed -e 's/\/data\/fromtape\///' >> ${checkpath}/tape_${id}.md5.wue
88 else
89 ssh -nx phoenix nice -n 19 /opt/csw/bin/gmd5sum /magic/datacenter/fromtape/${sum[0]} | sed -e 's/\/magic\/datacenter\/fromtape\///' >> ${checkpath}/tape_${id}.md5.wue
90 #md5sum /magic/datacenter/fromtape/${sum[0]} | sed -e 's/\/magic\/datacenter\/fromtape\///' >> ${checkpath}/tape_${id}.md5.wue
91 fi
92 fi
93done < $file
94
95date | tee -a ${checkpath}/tape_${id}.md5.lapalma | tee -a ${checkpath}/tape_${id}.md5.wue
96
97if [ ! -f ${checkpath}/tape_${id}.md5.lapalma ] || [ ! -f ${checkpath}/tape_${id}.md5.wue ]
98then
99 echo "No output files written! Something went wrong... -> aborting"
100 exit
101fi
102
103echo "Wrote checksums to ${checkpath}/tape_${id}.md5.lapalma and ${checkpath}/tape_${id}.md5.wue. Comparing now."
104
105
106# check for differences in the checksums
107output=`diff ${checkpath}/tape_${id}.md5.lapalma ${checkpath}/tape_${id}.md5.wue`
108
109if [ "$output" = "" ]
110then
111 echo "All checksums are ok! Launching movingrawfiles now."# to be included
112else
113 echo -e "The files are not identical! diff found the following differences:\n$output"
114fi
115
116echo "program terminated."
Note: See TracBrowser for help on using the repository browser.