source: trunk/MagicSoft/Mars/datacenter/scripts/dbchk@ 8064

Last change on this file since 8064 was 8057, checked in by tbretz, 19 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 2.2 KB
Line 
1#!/bin/sh
2
3
4# SETUP
5
6# directory where the sequence files are stored
7sequencedir=/magic/sequences
8# access to the sql database
9alias mymysql='mysql -s -u MAGIC -h hercules --password=d99swMT!'
10# database name
11db=MyMagic
12
13
14# TODO
15
16# Spped up with SQL: FIELD(25123, 1, 2, 3, 4, 5, ..., 1000200);
17# Cross check sequences in Sequence and other databases
18# added switch which allows to correct for the problems immediatly
19
20
21# CHECK 1
22echo Checking if all sequences in Sequences have a corresponding sequence files
23files=`find $sequencedir -type f`
24for file in $files
25do
26 sequence=`echo $file | sed -e "s/^.*\/sequence0\+\([0-9]\+\)\.txt$/\1/"`
27 if [ "$sequence" = "" ]
28 then
29 echo No sequence file: $sequence
30 continue
31 fi
32
33 var=`echo SELECT fSequenceFirst FROM $db.Sequences WHERE fSequenceFirst=$sequence | mymysql`
34 if ! [ "$sequence" = "$var" ]
35 then
36 echo Sequence-File $sequence exist but it is not in the db.
37 continue
38 fi
39done
40
41# CHECK 2
42echo Checking if all sequence files have a corresponding entry in Sequences
43sequences=`echo SELECT fSequenceFirst FROM $db.Sequences | mymysql`
44for sequence in $sequences
45do
46 var=`find $sequencedir -regex .*/sequence0+${sequence}\.txt$`
47 if [ "$var" = "" ]
48 then
49 echo Sequence-File for $sequence not found but in db.
50 fi
51done
52
53# CHECK 3
54echo Checking if all sequences from Sequences exists RunData
55sequences=`echo SELECT fSequenceFirst FROM $db.Sequences GROUP BY fSequenceFirst | mymysql`
56for sequence in $sequences
57do
58 res=`echo SELECT fSequenceFirst FROM $db.RunData WHERE fSequenceFirst=$sequence GROUP BY fSequenceFirst | mymysql`
59 if ! [ "$sequence" = "$res" ]
60 then
61 echo Sequence $sequence exists in Sequences but not in RunData.
62 continue
63 fi
64done
65
66# CHECK 4
67echo Checking if all sequences from RunData exists in Sequences
68sequences=`echo SELECT fSequenceFirst FROM $db.RunData WHERE not fSequenceFirst=0 GROUP BY fSequenceFirst | mymysql`
69for sequence in $sequences
70do
71 var=`echo SELECT fSequenceFirst FROM $db.Sequences WHERE fSequenceFirst=$sequence | mymysql`
72 if ! [ "$sequence" = "$var" ]
73 then
74 echo Sequence $sequence exists in RunData but not in Sequences.
75 continue
76 fi
77done
78
Note: See TracBrowser for help on using the repository browser.