source: trunk/DataCheck/Transfer/CheckTransfer.sh@ 13170

Last change on this file since 13170 was 13154, checked in by Daniela Dorner, 13 years ago
added (script to check status of transfer for deleting data)
  • Property svn:executable set to *
File size: 18.0 KB
Line 
1#!/bin/bash
2#
3# This script checks whether data can be transferred
4#
5
6source `dirname $0`/../Sourcefile.sh
7printprocesslog "INFO starting $0"
8
9# get last 10 nights (skip current night)
10dates=( `date +%Y/%m/%d --date="-360hour"` `date +%Y/%m/%d --date="-336hour"` `date +%Y/%m/%d --date="-312hour"` \
11 `date +%Y/%m/%d --date="-288hour"` `date +%Y/%m/%d --date="-264hour"` `date +%Y/%m/%d --date="-240hour"` \
12 `date +%Y/%m/%d --date="-216hour"` `date +%Y/%m/%d --date="-192hour"` `date +%Y/%m/%d --date="-168hour"` \
13 `date +%Y/%m/%d --date="-144hour"` `date +%Y/%m/%d --date="-120hour"` `date +%Y/%m/%d --date="-96hour"` \
14 `date +%Y/%m/%d --date="-72hour"` `date +%Y/%m/%d --date="-48hour"` `date +%Y/%m/%d --date="-24hour"` \
15 )
16
17numdaysok=0
18numdaysoklimit=3
19for date in ${dates[@]}
20do
21 echo ""
22 echo ""
23 echo ""
24 echo $date
25
26 # some counters
27 numdiff=0
28 numok=0
29 numpb=0
30
31 # check always only $numdaysoklimit days
32 if [ $numdaysok -gt $numdaysoklimit ]
33 then
34 echo "INFO more than "$numdaysoklimit" ok -> stop. "
35 continue
36 fi
37
38 # get paths
39 date2=`echo $date | sed -e 's/\///g'`
40 lprawpath="/daq/raw/"$date
41 lprawpath2="/loc_data/raw/"$date
42 lpziprawpath="/loc_data/zipraw/"$date
43 localrawpath="/scratch/from_lapalma/raw/"$date
44 localrawpath2="/data00/fact-construction/raw/"$date
45 localrawpath3="/fact/raw/"$date
46 localfailpath="/archive/fact/fails/raw/"$date
47 wuerawpath="/fact/raw/"$date
48
49 # get disk usage and number of files for directory
50 daq=( `ssh fact@161.72.93.131 "if [ -d $lprawpath ]; then ls $lprawpath/* | wc -l; du -s -b --apparent-size $lprawpath; else echo '-1 -1 -1'; fi"` )
51 data=( `ssh fact@161.72.93.131 "if [ -d $lprawpath2 ]; then ls $lprawpath2/* | wc -l; du -s -b --apparent-size $lprawpath2; else echo '-1 -1 -1'; fi"` )
52 if [ ${daq[0]} -eq -1 ] && [ ${data[0]} -eq -1 ]
53 then
54 echo "INFO no data available on daq for "$date
55 continue
56 fi
57 zip=( `ssh fact@161.72.93.131 "if [ -d $lpziprawpath ]; then ls $lpziprawpath/* | wc -l; du -s -b --apparent-size $lpziprawpath; else echo '-1 -1 -1'; fi"` )
58 dl00=( `if [ -d $localrawpath ]; then ls $localrawpath/* | wc -l; du -s -b --apparent-size $localrawpath; else echo '-1 -1 -1'; fi` )
59 data00=( `if [ -d $localrawpath2 ]; then ls $localrawpath2/* | wc -l; du -s -b --apparent-size $localrawpath2; else echo '-1 -1 -1'; fi` )
60 archive=( `if [ -d $localrawpath3 ]; then ls $localrawpath3/* | wc -l; du -s -b --apparent-size $localrawpath3; else echo '-1 -1 -1'; fi` )
61 fails=( `if [ -d $localfailpath ]; then ls $localfailpath/* | wc -l; du -s -b --apparent-size $localfailpath; else echo '-1 -1 -1'; fi` )
62 wue=( `ssh operator@coma.astro.uni-wuerzburg.de "if [ -d $wuerawpath ]; then ls $wuerawpath/* | wc -l; du -s -b --apparent-size $wuerawpath; else echo '-1 -1 -1'; fi"` )
63 query="SELECT Sum(if(fHasDrsFile=1,2,1)) FROM RunInfo WHERE fNight="$date2
64 querystart="SELECT Sum(if(fHasDrsFile=1,2,1)) FROM "
65 queryjoin="LEFT JOIN RunInfo USING(fNight,fRunID) "
66 querywhere="WHERE fNight="$date2" AND NOT ISNULL(fStartTime) AND NOT ISNULL(fStopTime) AND ISNULL(fReturnCode)"
67 numruns=`sendquery`
68 if [ "$numruns" == "" ]
69 then
70 numruns=0
71 fi
72 query=$querystart"RawFileRsyncedISDCStatus "$queryjoin" "$querywhere
73 numrsynced=`sendquery`
74 if [ "$numrsynced" == "" ]
75 then
76 numrsynced=0
77 fi
78 query=$querystart"RawFileAvailISDCStatus "$queryjoin" "$querywhere
79 numisdc=`sendquery`
80 if [ "$numisdc" == "" ]
81 then
82 numisdc=0
83 fi
84 query=$querystart"RawFileAvailWueStatus "$queryjoin" "$querywhere
85 numwue=`sendquery`
86 if [ "$numwue" == "" ]
87 then
88 numwue=0
89 fi
90 echo " daq "${daq[@]}
91 echo " data "${data[@]}
92 echo " zip "${zip[@]}
93 if [ $date2 -gt 20120307 ]
94 then
95 echo " dl00 "${dl00[@]}
96 else
97 echo " data00 "${data00[@]}
98 fi
99 echo " arch "${archive[@]}
100 echo " fail "${fails[@]}
101 echo " wue "${wue[@]}
102 echo " runinfo "$numruns
103 echo " rsynced "$numrsynced
104 echo " isdc "$numisdc
105 echo " wue "$numwue
106
107 # check if file are available in the differen places
108 if [ ${dl00[0]} -eq -1 ] && [ $date2 -lt 20120308 ]
109 then
110 echo "INFO data not available on /scratch on dl00 for "$date
111 fi
112 if [ ${data00[0]} -eq -1 ] && [ $date2 -gt 20120307 ]
113 then
114 echo "INFO data not available on /data00 for "$date
115 fi
116 if [ ${archive[0]} -eq -1 ]
117 then
118 echo "INFO data not in archive for "$date
119 fi
120
121 # check if number of files agree in the different places
122 # archive
123 if ! [ ${archive[0]} -eq -1 ] && ! [ ${archive[0]} -eq ${daq[0]} ]
124 then
125 echo "WARN number of files in archive (" ${archive[0]}") does not agree with number of files in LP (" ${daq[0]}") for "$date
126 #check /archive/rev_1/failed
127 if ! [ ${fails[0]} -eq -1 ]
128 then
129 sum=`echo " ${fails[0]} + ${archive[0]} " | bc -l `
130 if ! [ $sum -eq ${daq[0]} ]
131 then
132 echo "ERROR number of files in archive ("$sum") wrong."
133 numpb=`echo " $numpb + 1 " | bc -l `
134 result="1"
135 else
136 numok=`echo " $numok + 1 " | bc -l `
137 result="0"
138 fi
139 fi
140 else
141 numok=`echo " $numok + 1 " | bc -l `
142 result="0"
143 fi
144 # lp
145 if ! [ ${data[0]} -eq -1 ] && ! [ ${data[0]} -eq ${daq[0]} ]
146 then
147 echo "WARN number of files on data (" ${data[0]}") does not agree with number of files on daq (" ${daq[0]}") for "$date
148 numpb=`echo " $numpb + 1 " | bc -l `
149 result=$result"1"
150 else
151 numok=`echo " $numok + 1 " | bc -l `
152 result=$result"0"
153 fi
154 # dl00
155 if ! [ ${dl00[0]} -eq -1 ] && ! [ ${dl00[0]} -eq ${daq[0]} ]
156 then
157 echo "WARN number of files on dl00 (" ${dl00[0]}") does not agree with number of files in LP (" ${daq[0]}") for "$date
158 numpb=`echo " $numpb + 1 " | bc -l `
159 result=$result"1"
160 else
161 numok=`echo " $numok + 1 " | bc -l `
162 result=$result"0"
163 fi
164 # /data00 (to be removed later)
165 if ! [ ${data00[0]} -eq -1 ] && ! [ ${data00[0]} -eq ${daq[0]} ]
166 then
167 echo "WARN number of files in /data00 (" ${data00[0]}") does not agree with number of files in LP (" ${daq[0]}") for "$date
168 fi
169 # wue
170 if ! [ ${wue[0]} -eq -1 ] && ! [ ${wue[0]} -eq ${daq[0]} ]
171 then
172 echo "WARN number of files in Wue (" ${wue[0]}") does not agree with number of files in LP (" ${daq[0]}") for "$date
173 numpb=`echo " $numpb + 1 " | bc -l `
174 result=$result"1"
175 else
176 numok=`echo " $numok + 1 " | bc -l `
177 result=$result"0"
178 fi
179
180 result=$result"-"
181 # check du for raw files
182 # la palma
183 if ! [ ${daq[1]} -eq ${data[1]} ]
184 then
185 echo "WARN size of data doesn't agree on daq ("${daq[1]}") and data ("${data[1]}") for "$date
186 numdiff=`echo " $numdiff + 1 " | bc -l `
187 numpb=`echo " $numpb + 1 " | bc -l `
188 result=$result"1"
189 else
190 numok=`echo " $numok + 1 " | bc -l `
191 result=$result"0"
192 fi
193 # check du for zipped raw files
194 # dl00
195 if ! [ ${zip[1]} -eq ${dl00[1]} ] && [ $date2 -gt 20120307 ]
196 then
197 echo "WARN size of data doesn't agree on data ("${zip[1]}") and dl00 ("${dl00[1]}") for "$date
198 if ! [ ${dl00[1]} -eq -1 ]
199 then
200 numdiff=`echo " $numdiff + 1 " | bc -l `
201 numpb=`echo " $numpb + 1 " | bc -l `
202 result=$result"1"
203 else
204 numok=`echo " $numok + 1 " | bc -l `
205 result=$result"0"
206 fi
207 else
208 numok=`echo " $numok + 1 " | bc -l `
209 result=$result"0"
210 fi
211 # data00 (to be removed later)
212 if ! [ ${zip[1]} -eq ${data00[1]} ] && [ $date2 -lt 20120308 ]
213 then
214 echo "WARN size of data doesn't agree on data ("${zip[1]}") and /data00 ("${data00[1]}") for "$date
215 if ! [ ${data00[1]} -eq -1 ]
216 then
217 numdiff=`echo " $numdiff + 1 " | bc -l `
218 fi
219 fi
220 # archive
221 if ! [ ${zip[1]} -eq ${archive[1]} ]
222 then
223 echo "WARN size of data doesn't agree on data ("${zip[1]}") and in archive ("${archive[1]}") for "$date
224 if ! [ ${archive[1]} -eq -1 ]
225 then
226 numdiff=`echo " $numdiff + 1 " | bc -l `
227 numpb=`echo " $numpb + 1 " | bc -l `
228 result=$result"1"
229 else
230 numok=`echo " $numok + 1 " | bc -l `
231 result=$result"0"
232 fi
233 else
234 numok=`echo " $numok + 1 " | bc -l `
235 result=$result"0"
236 fi
237 # wue
238 if ! [ ${zip[1]} -eq ${wue[1]} ]
239 then
240 echo "WARN size of data doesn't agree on data ("${zip[1]}") and in Wue ("${wue[1]}") for "$date
241 if ! [ ${wue[1]} -eq -1 ]
242 then
243 numdiff=`echo " $numdiff + 1 " | bc -l `
244 numpb=`echo " $numpb + 1 " | bc -l `
245 result=$result"1"
246 else
247 numok=`echo " $numok + 1 " | bc -l `
248 result=$result"0"
249 fi
250 else
251 numok=`echo " $numok + 1 " | bc -l `
252 result=$result"0"
253 fi
254 result=$result"-"
255
256 # check DB (only starting from 8.3.2012) (if-clause to be removed later)
257 if [ $date2 -gt 20120307 ]
258 then
259 # lp
260 if ! [ $numruns -eq ${daq[0]} ]
261 then
262 echo "WARN number of runs on daq ("${daq[0]}") not equal to number of runs ("$numruns")"
263 numpb=`echo " $numpb + 1 " | bc -l `
264 result=$result"1"
265 else
266 numok=`echo " $numok + 1 " | bc -l `
267 result=$result"0"
268 fi
269 # dl00
270 if ! [ $numruns -eq $numrsynced ]
271 then
272 echo "WARN number of rsynced runs ("$numrsynced") not equal to number of runs ("$numruns")"
273 numpb=`echo " $numpb + 1 " | bc -l `
274 result=$result"1"
275 else
276 numok=`echo " $numok + 1 " | bc -l `
277 result=$result"0"
278 fi
279 # archive
280 if ! [ $numruns -eq $numisdc ]
281 then
282 echo "WARN number of rsynced in archive ("$numrsynced") not equal to number of runs ("$numruns")"
283 numpb=`echo " $numpb + 1 " | bc -l `
284 result=$result"1"
285 else
286 numok=`echo " $numok + 1 " | bc -l `
287 result=$result"0"
288 fi
289 # wue
290 if ! [ $numruns -eq $numwue ]
291 then
292 echo "WARN number of backuped in Wue ("$numrsynced") not equal to number of runs ("$numruns")"
293 numpb=`echo " $numpb + 1 " | bc -l `
294 result=$result"1"
295 else
296 numok=`echo " $numok + 1 " | bc -l `
297 result=$result"0"
298 fi
299 fi
300
301 echo "numdiff: "$numdiff
302 echo "INFO numok: "$numok
303 echo "INFO numpb: "$numpb
304 if [ $numdiff -gt 0 ]
305 then
306 query="SELECT fRunID FROM RunInfo WHERE fNight="$date2
307 runs=`sendquery`
308 archivediffcounter=0
309 archiveokcounter=0
310 wuediffcounter=0
311 wueokcounter=0
312 dl00diffcounter=0
313 dl00okcounter=0
314 datadiffcounter=0
315 dataokcounter=0
316 for run in ${runs[@]}
317 do
318 rawfile=$date2"_"`printf %03d $run`".fits"
319 rawfile2=$rawfile".gz"
320
321 # get file sizes for run
322 sizedaq=( `ssh fact@161.72.93.131 "ls -l ${lprawpath}/${rawfile} 2>/dev/null | awk '{ print \\\$5 }'"` )
323 sizedata=( `ssh fact@161.72.93.131 "ls -l $lprawpath2/$rawfile 2>/dev/null | awk '{ print \\\$5 }'"` )
324 sizezip=( `ssh fact@161.72.93.131 "ls -l $lpziprawpath/$rawfile2 2>/dev/null | awk '{ print \\\$5 }'"` )
325 if ! [ ${dl00[1]} -eq -1 ]
326 then
327 sizedl00=( `ls -l $localrawpath/$rawfile2 2>/dev/null | awk '{ print \$5 }'` )
328 fi
329 if ! [ ${data00[1]} -eq -1 ]
330 then
331 sizedata00=( `ls -l $localrawpath2/$rawfile2 2>/dev/null | awk '{ print \$5 }'` )
332 fi
333 if ! [ ${archive[1]} -eq -1 ]
334 then
335 sizearchive=( `ls -l $localrawpath3/$rawfile2 2>/dev/null | awk '{ print \$5 }'` )
336 fi
337 if ! [ ${wue[1]} -eq -1 ]
338 then
339 sizewue=( `ssh operator@coma.astro.uni-wuerzburg.de "ls -l $wuerawpath/$rawfile2 2>/dev/null | awk '{ print \\\$5 }'"` )
340 fi
341
342 # check file sizes for run
343 # lp
344 if ! [ "$sizedaq" = "$sizedata" ]
345 then
346 echo " "$rawfile" daq("$sizedaq") data("$sizedata")"
347 datadiffcounter=`echo " $datadiffcounter + 1 " | bc -l `
348 else
349 dataokcounter=`echo " $dataokcounter + 1 " | bc -l `
350 fi
351 # dl00
352 if ! [ "$sizezip" = "$sizedl00" ] && ! [ ${dl00[1]} -eq -1 ]
353 then
354 echo " "$rawfile2" data("$sizezip") dl00("$sizedl00")"
355 dl00diffcounter=`echo " $dl00diffcounter + 1 " | bc -l `
356 else
357 dl00okcounter=`echo " $dl00okcounter + 1 " | bc -l `
358 fi
359 # data00
360 if ! [ "$sizezip" = "$sizedata00" ] && ! [ ${data00[1]} -eq -1 ]
361 then
362 echo " "$rawfile2" data("$sizezip") data00("$sizedata00")"
363 fi
364 # archive
365 if ! [ "$sizezip" = "$sizearchive" ] && ! [ ${archive[1]} -eq -1 ]
366 then
367 echo " "$rawfile2" data("$sizezip") archive("$sizearchive")"
368 archivediffcounter=`echo " $archivediffcounter + 1 " | bc -l `
369 else
370 archiveokcounter=`echo " $archiveokcounter + 1 " | bc -l `
371 fi
372 # wue
373 if ! [ "$sizezip" = "$sizewue" ] && ! [ ${wue[1]} -eq -1 ]
374 then
375 echo " "$rawfile2" data("$sizezip") wue("$sizewue")"
376 wuediffcounter=`echo " $wuediffcounter + 1 " | bc -l `
377 else
378 wueokcounter=`echo " $wueokcounter + 1 " | bc -l `
379 fi
380 done
381 query="SELECT fRunID FROM RunInfo WHERE fNight="$date2" AND fHasDrsFile=1"
382 drsruns=`sendquery`
383 for drsrun in ${drsruns[@]}
384 do
385 rawfile=$date2"_"`printf %03d $run`"drs.fits"
386 rawfile2=$rawfile".gz"
387 # get file sizes for run
388 sizedaq=( `ssh fact@161.72.93.131 "ls -l ${lprawpath}/${rawfile} 2>/dev/null | awk '{ print \\\$5 }'"` )
389 sizedata=( `ssh fact@161.72.93.131 "ls -l $lprawpath2/$rawfile 2>/dev/null | awk '{ print \\\$5 }'"` )
390 sizezip=( `ssh fact@161.72.93.131 "ls -l $lpziprawpath/$rawfile2 2>/dev/null | awk '{ print \\\$5 }'"` )
391 if ! [ ${dl00[1]} -eq -1 ]
392 then
393 sizedl00=( `ls -l $localrawpath/$rawfile2 2>/dev/null | awk '{ print \$5 }'` )
394 fi
395 if ! [ ${data00[1]} -eq -1 ]
396 then
397 sizedata00=( `ls -l $localrawpath2/$rawfile2 2>/dev/null | awk '{ print \$5 }'` )
398 fi
399 if ! [ ${archive[1]} -eq -1 ]
400 then
401 sizearchive=( `ls -l $localrawpath3/$rawfile2 2>/dev/null | awk '{ print \$5 }'` )
402 fi
403 if ! [ ${wue[1]} -eq -1 ]
404 then
405 sizewue=( `ssh operator@coma.astro.uni-wuerzburg.de "ls -l $wuerawpath/$rawfile2 2>/dev/null | awk '{ print \\\$5 }'"` )
406 fi
407
408 # check file sizes for run
409 # lp
410 if ! [ "$sizedaq" = "$sizedata" ]
411 then
412 echo " "$rawfile" daq("$sizedaq") data("$sizedata")"
413 datadiffcounter=`echo " $datadiffcounter + 1 " | bc -l `
414 else
415 dataokcounter=`echo " $dataokcounter + 1 " | bc -l `
416 fi
417 # dl00
418 if ! [ "$sizezip" = "$sizedl00" ] && ! [ ${dl00[1]} -eq -1 ]
419 then
420 echo " "$rawfile2" data("$sizezip") dl00("$sizedl00")"
421 dl00diffcounter=`echo " $dl00diffcounter + 1 " | bc -l `
422 else
423 dl00okcounter=`echo " $dl00okcounter + 1 " | bc -l `
424 fi
425 # data00
426 if ! [ "$sizezip" = "$sizedata00" ] && ! [ ${data00[1]} -eq -1 ]
427 then
428 echo " "$rawfile2" data("$sizezip") data00("$sizedata00")"
429 fi
430 # archive
431 if ! [ "$sizezip" = "$sizearchive" ] && ! [ ${archive[1]} -eq -1 ]
432 then
433 echo " "$rawfile2" data("$sizezip") archive("$sizearchive")"
434 archivediffcounter=`echo " $archivediffcounter + 1 " | bc -l `
435 else
436 archiveokcounter=`echo " $archiveokcounter + 1 " | bc -l `
437 fi
438 # wue
439 if ! [ "$sizezip" = "$sizewue" ] && ! [ ${wue[1]} -eq -1 ]
440 then
441 echo " "$rawfile2" data("$sizezip") wue("$sizewue")"
442 wuediffcounter=`echo " $wuediffcounter + 1 " | bc -l `
443 else
444 wueokcounter=`echo " $wueokcounter + 1 " | bc -l `
445 fi
446 done
447
448 result=$result"-"
449 echo "Wue: ok: "$wueokcounter" diff: "$wuediffcounter
450 echo "Arch: ok: "$archiveokcounter" diff: "$archivediffcounter
451 # raw files
452 if [ $dataokcounter -eq ${data[0]} ]
453 then
454 numok=`echo " $numok + 1 " | bc -l `
455 result=$result"0"
456 echo "INFO "$dataokcounter" files are ok on data (raw)."
457 else
458 result=$result"1"
459 numpb=`echo " $numpb + 1 " | bc -l `
460 echo "WARN "$datadiffcounter" files have a different size on data (raw)."
461 fi
462 # zipped files
463 # dl00
464 if [ $dl00okcounter -eq ${dl00[0]} ]
465 then
466 result=$result"0"
467 numok=`echo " $numok + 1 " | bc -l `
468 echo "INFO "$dl00okcounter" files are ok on dl00."
469 else
470 result=$result"1"
471 numpb=`echo " $numpb + 1 " | bc -l `
472 echo "WARN "$dl00diffcounter" files have a different size on dl00."
473 fi
474 # archive
475 if [ $archiveokcounter -eq ${daq[0]} ]
476 then
477 result=$result"0"
478 numok=`echo " $numok + 1 " | bc -l `
479 echo "INFO "$archiveokcounter" files are ok in the archive."
480 else
481 result=$result"1"
482 numpb=`echo " $numpb + 1 " | bc -l `
483 echo "WARN "$archivediffcounter" files have a different size in the archive."
484 fi
485 # wue
486 if [ $wueokcounter -eq ${wue[0]} ]
487 then
488 result=$result"0"
489 numok=`echo " $numok + 1 " | bc -l `
490 echo "INFO "$wueokcounter" files are ok in Wue."
491 else
492 result=$result"1"
493 numpb=`echo " $numpb + 1 " | bc -l `
494 echo "WARN "$wuediffcounter" files have a different size in Wue."
495 fi
496 fi
497
498 # print summary:
499 echo "INFO day ok: "$numdaysok
500 echo "INFO numok: "$numok
501 echo "INFO numpb: "$numpb
502 echo "result: (#files-dudir-db-filesize)"
503 echo "ldaw-ldaw-ldaw-ldaw"
504 echo $result
505 #if [ $numpb -eq 0 ]
506 if [ $numpb -lt 4 ]
507 then
508 numdaysok=`echo " $numdaysok + 1 " | bc -l `
509 fi
510done
511
512printprocesslog "INFO finished $0"
513
Note: See TracBrowser for help on using the repository browser.