Project

General

Profile

Revision 4810

Added by daigle over 11 years ago

moved file from metacat/bin to metacat/src/scripts/bash since eclipse uses <project>/bin as a default build directory and these files will consistently get blown away locally by eclipse.

View differences:

bin/backup-metacat.sh
1
#!/bin/sh
2

  
3
#
4
# Backup files needed for metacat.  This script creates a temporary directory,
5
# backs up the postgres database, metacat data files, and ldap directory, and 
6
# then creates a gzipped tar file from those files.  It then writes the backup
7
# file to a DVD drive and then cleans up any old backup files.
8
#
9
# To run this file, install it in /usr/sbin or a similar location and add an
10
# entry in the root user's crontab to run the command periodically.  The
11
# following crontab entry would run it every night at 2:00 am
12
# 0 2 * * *       /usr/sbin/backup-metacat.sh >> $HOME/cron-output 2>&1
13
#
14
# This is really just an example script and may not work in your environment
15
# uless you modify it appropriately.
16
#
17
# 13 March 2006 Matt Jones
18

  
19
# Name of the metacat database in postgres to be backed up
20
DBNAME=metacat
21

  
22
# The day of the week on which the DVD is swapped (1-7, 1=Monday)
23
# This must be correct or else the write to DVD will not work
24
SWAPDAY=2
25

  
26
# Number of days of backups to keep online, anything older is removed
27
DAYSTOKEEP=7
28

  
29
# Device to be used for the DVD writer -- this may vary on your system
30
DVD=/dev/dvd
31

  
32
#
33
# Below here lie demons
34
#
35

  
36
# Set up our umask to protect files from prying eyes
37
umask 007
38

  
39
# Make a temp dir for the backed up files
40
TAG=`date +%F-%H%M%S`
41
DATADIR="/var/metacat"
42
ARCHROOT="/var/metacat/metacat-backup"
43
mkdir $ARCHROOT
44
chgrp postgres $ARCHROOT
45
chmod g+rwxs $ARCHROOT
46

  
47
ARCHNAME="metacat-backup-$TAG"
48
ARCHDIR="$ARCHROOT/$ARCHNAME"
49
mkdir $ARCHDIR
50

  
51
# Shut down the tomcat server so nobody else changes anything while we backup
52
/etc/init.d/tomcat stop
53

  
54
# Shut down ldap too
55
/etc/init.d/slapd stop
56

  
57
# Backup postgres
58
su - postgres -c "pg_dump $DBNAME > $ARCHDIR/metacat-postgres-backup.sql"
59

  
60
# Backup the data files
61
tar czf $ARCHDIR/datafiles-backup.tgz --exclude=$ARCHROOT $DATADIR
62

  
63
# Backup LDAP to an LDIF file
64
slapcat -l $ARCHDIR/$DBNAME-ldap.ldif
65

  
66
# Restart LDAP
67
/etc/init.d/slapd start
68

  
69
# Restart tomcat
70
/etc/init.d/tomcat start
71

  
72
# Tar up the archive and copy it to archive media
73
cd $ARCHROOT
74
tar czf $ARCHDIR.tgz $ARCHNAME
75

  
76
# Clean up the temp files
77
rm -rf $ARCHDIR
78

  
79
# Write the backup file to DVD
80
DAY=`date +%u`
81
DVDFLAG=-M
82
if [ $DAY == $SWAPDAY ] ; then
83
  DVDFLAG=-Z
84
fi
85
growisofs $DVDFLAG $DVD -R -J $ARCHDIR.tgz
86

  
87
# clean up any of the backup files that are older than DAYSTOKEEP
88
find $ARCHROOT -mtime +$DAYSTOKEEP -exec rm -f {} \;
89 0

  
bin/buildIndex.sh
1
#!/bin/sh
2
#This script will send a buildIndex command to 
3
#remote metacat with docid parameter. Then metacat will build index for this docid.
4
#This script will have one argument - it is a text file name which contains docid list.
5
#The text file will look like
6
#nceas.1.1
7
#nceas.2.1
8
#nceas.3.1
9

  
10
if  [ $# -ne 1 ]
11
 then
12
    echo "USAGE: $0 docidfile"
13
    exit 1
14
fi 
15
echo 'Please type metacat url (It should look like "http://pacific.msi.ucsb.edu:8080/knb/metacat")'
16
read metacatBaseURL
17
echo 'Please type KNB user name (It should look like "uid=tao,o=NCEAS,dc=ecoinformatics,dc=org")'
18
read username
19
echo 'Please type password'
20
read password
21
date
22
#login to metacat
23
loginurl="$metacatBaseURL?action=login&username=$username&password=$password"
24
wget -q -O - --save-cookies cookies --keep-session-cookies "$loginurl"
25

  
26
suffix="?action=buildindex"
27
metacatURL="$metacatBaseURL$suffix"
28

  
29
FILE=$1
30
# make sure file exist and readable
31
if [ ! -f $FILE ]; then 
32
  	echo "$FILE : does not exists"
33
  	exit 1
34
elif [ ! -r $FILE ]; then
35
  	echo "$FILE: can not read"
36
  	exit 2
37
fi
38

  
39

  
40
index=0
41
length=3
42
# read $FILE using the file descriptors
43
exec 3<&0
44
exec 0<$FILE
45
while read line
46
do
47
    if [ "$line" != "" ]
48
    then
49
      # construct metacat with given length of docid
50
      metacatURL="$metacatURL&docid=$line"
51
      index=`expr $index + 1`
52
	    if [ $index -eq $length ]
53
	    then
54
	       echo "here is url $metacatURL"
55
	       wget -q -O - --load-cookies cookies "$metacatURL"
56
	       index=0;
57
	       metacatURL="$metacatBaseURL$suffix"
58
	    fi
59
	fi		
60
done
61

  
62
#This will send out some remained docid
63
if [ $index -ne 0 ]
64
then   
65
    echo "here is url $metacatURL"
66
    wget -q -O - --load-cookies cookies "$metacatURL"
67
fi
68

  
69
exec 0<&3
70
date
71
exit 0
72 0

  
bin/measure-metacat-query-performance.sh
1
#!/bin/bash
2
#Call a java client class to query metacat automatically and metacat server
3
#will record the performance data into a file. Since we need restart postgres,
4
#this script should be run as root user
5
#Note: before running the script, user should run both "ant jar" and "ant clientjar"
6
#in Metacat to get metaca-client.jar and metacat.jar in build directory. 
7

  
8
#variables
9
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar
10
METACAT=../build/metacat.jar
11
METACAT_CLIENT=../build/metacat-client.jar
12
UTILITIES=../lib/utilities.jar
13
METACATURL=http://chico.dyndns.org:8081/knb/metacat
14
QUERY=../test/performance_measure_query
15
TIME=2
16
TOMCATUSER=tao
17

  
18
#copy the java client to build directory
19
rm -rf ../build/tests/
20
mkdir ../build/tests
21
mkdir ../build/tests/edu
22
mkdir ../build/tests/edu/ucsb
23
mkdir ../build/tests/edu/ucsb/nceas
24
mkdir ../build/tests/edu/ucsb/nceas/metacattest
25
cp ../test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java ../build/tests/edu/ucsb/nceas/metacattest/.
26

  
27
#compile the class
28
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES ../build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java 
29

  
30

  
31

  
32

  
33
#Iterate to restart postgres and tomcat, and call java client class
34
for (( i = 0; i < $TIME; i++))
35
do
36
    #retart postgres
37
    /etc/init.d/postgresql-8.2 restart
38
    #Check if posgres restart successfully
39
    successPQL=false;
40
    while [ $successPQL = false ]
41
    do
42
      #if found netstat command has posgres lisenter is ready,
43
      #reset the success value to jump the while loop.
44
      for fn in `netstat -plt | grep postgres`
45
      do
46
        #reset success value
47
        successPQL=true
48
      done
49
    done
50
    echo "success value for restarting postgres is $successPQL"
51

  
52
    #stop tomcat
53
    su - $TOMCATUSER /usr/local/devtools/apache-tomcat-5.5.23/bin/shutdown.sh
54
     #Check if tomcat start successfully
55
    successStop=false;
56
    tomcatRunning=false
57
    while [ $successStop = false ]
58
    do
59
      #if found netstat command still has tcomat lisenter (port 8005) ,
60
      #reset the tomcatRunning value to true
61
      for fn in `netstat -plt | grep 8005`
62
      do
63
        #reset success value
64
        tomcatRunning=true;
65
      done
66
      if [ $tomcatRunning = true ]
67
         then
68
           successStop=false
69
         else
70
           successStop=true
71
      fi
72
    done
73
    echo "success value for stoping tomcat is $successStop"
74
     
75
    #start tomcat
76
   su - $TOMCATUSER  /usr/local/devtools/apache-tomcat-5.5.23/bin/startup.sh
77
    #Check if tomcat start successfully
78
    successStart=false;
79
    while [ $successStart = false ]
80
    do
81
      #if found netstat command has tcomat lisenter (port 8005) is ready,
82
      #reset the success value to jump the while loop.
83
      for fn in `netstat -plt | grep 8005`
84
      do
85
        #reset success value
86
        successStart=true
87
      done
88
    done
89
    echo "success value for starting tomcat is $successStart"
90

  
91

  
92
    #run the class -- query the remote metacat
93
    java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:../build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY
94
    echo "Successfully query the metacat"
95
done
96 0

  
bin/check_shape_file_existence.sh
1
#!/bin/bash
2
#This file will check if shape files exist or not.
3
#If one is deleted and a email will be sent to tao with the tomcat log.
4
#Note: if file eml_message already exists in current dir, email wouldn't send again.
5
#This setting will make sure only one email will sent. Otherwise, my email account will be over quota.
6
target_file1=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_points.dbf
7
target_file2=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_points.shp
8
target_file3=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_points.shx
9
target_file4=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_bounds.dbf
10
target_file5=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_bounds.shp
11
target_file6=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_bounds.shx
12

  
13
log_file=/var/log/tomcat/catalina.out
14
sender_email_address=knb_tomcat@ecoinformatics.org
15
receiver_email_address=tao@nceas.ucsb.edu
16
tmp=/root/email_message
17
if [ ! -e $target_file1 -o ! -e $target_file2 -o ! -e $target_file3 -o ! -e $target_file4 -o ! -e $target_file5 -o ! -e $target_file6 ]
18
 then
19
   if [ ! -e $tmp ]
20
     then
21
       touch $tmp && chmod 600 $tmp
22
       echo -e "subject: Shape file was deleted at `date`\n" > $tmp
23
       echo -e "\n log file info: " >> $tmp
24
       echo -e "\n `tail -300 $log_file`" >> $tmp
25
       /usr/sbin/sendmail -f $sender_email_address $receiver_email_address < $tmp
26
   fi
27
fi
28 0

  
bin/measure-metacat-query-performance2.sh
1
#!/bin/bash
2
#Call a java client class to query metacat automatically and metacat server
3
#will record the performance data into a file.  This script will be put in /etc/init.d directory
4
#and called in system booting. After script is down, it will call reboot system too.
5
#So every time to excecute the quyer, memory will be in fresh.
6
#Note: before running the script, user should run both "ant jar" and "ant clientjar"
7
#in Metacat to get metaca-client.jar and metacat.jar in build directory. 
8

  
9
#variables
10
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar
11
PROJECT=/home/tao/project/metacat
12
METACATURL=http://chico.dyndns.org:8081/knb/metacat
13
TOMCATUSER=tao
14

  
15

  
16
QUERY=$PROJECT/test/performance_measure_query
17
TIMEFILE=$PROJECT/test/times
18
METACAT=$PROJECT/build/metacat.jar
19
METACAT_CLIENT=$PROJECT/build/metacat-client.jar
20
UTILITIES=$PROJECT/lib/utilities.jar
21

  
22
#copy the java client to build directory
23
rm -rf $PROJECT/build/tests/
24
mkdir -p $PROJECT/build/tests/edu/ucsb/nceas/metacattest
25
cp $PROJECT/test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java $PROJECT/build/tests/edu/ucsb/nceas/metacattest/.
26

  
27
#compile the class
28
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES $PROJECT/build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java 
29

  
30

  
31
case "$1" in
32
  start)
33
    echo "Starting running query script"
34
    #Iterate to restart postgres and tomcat, and call java client class
35
    TIMES=`cat $TIMEFILE`
36
    echo "The value from TIMEFILE is $TIMES" 
37
    #if times greater than 0, it will query the metacat
38
    if [ $TIMES -gt 0 ]
39
      then
40
      #Check if postgres start successfully
41
      successPQL=false;
42
      while [ $successPQL = false ]
43
         do
44
             #if found netstat command has posgres lisenter is ready,
45
             #reset the success value to jump the while loop.
46
             for fn in `netstat -plt | grep postgres`
47
               do
48
                 #reset success value
49
                 successPQL=true
50
            done
51
      done
52
      echo "success value for starting postgres is $successPQL"
53
      #Check if tomcat start successfully
54
      successStart=false;
55
      while [ $successStart = false ]
56
        do
57
           #if found netstat command has tcomat lisenter (port 8005) is ready,
58
           #reset the success value to jump the while loop.
59
           for fn in `netstat -plt | grep 8005`
60
             do
61
                #reset success value
62
                successStart=true
63
           done
64
      done
65
     echo "success value for starting tomcat is $successStart"
66
     #run the class -- query the remote metacat
67
      java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:$PROJECT/build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY
68
      echo "Successfully query the metacat"
69
      #Drecease 1 from value of TIMES
70
      TIMES=`expr $TIMES - 1`
71
      echo "The new TIMES value  is $TIMES"
72
      #write the new TIMES to the file
73
      echo $TIMES >$TIMEFILE
74
      #reboot machine
75
      reboot
76
    fi
77
   ;;
78
 stop)
79
    echo "Stopping running query script - do nothing"
80
     ;;
81
  *)
82
    echo "Usage: /etc/init.d/blah {start|stop}"
83
    exit 1
84
    ;;
85
esac
86

  
87
exit 0
88
 
89 0

  
src/scripts/bash/buildIndex.sh
1
#!/bin/sh
2
#This script will send a buildIndex command to 
3
#remote metacat with docid parameter. Then metacat will build index for this docid.
4
#This script will have one argument - it is a text file name which contains docid list.
5
#The text file will look like
6
#nceas.1.1
7
#nceas.2.1
8
#nceas.3.1
9

  
10
if  [ $# -ne 1 ]
11
 then
12
    echo "USAGE: $0 docidfile"
13
    exit 1
14
fi 
15
echo 'Please type metacat url (It should look like "http://pacific.msi.ucsb.edu:8080/knb/metacat")'
16
read metacatBaseURL
17
echo 'Please type KNB user name (It should look like "uid=tao,o=NCEAS,dc=ecoinformatics,dc=org")'
18
read username
19
echo 'Please type password'
20
read password
21
date
22
#login to metacat
23
loginurl="$metacatBaseURL?action=login&username=$username&password=$password"
24
wget -q -O - --save-cookies cookies --keep-session-cookies "$loginurl"
25

  
26
suffix="?action=buildindex"
27
metacatURL="$metacatBaseURL$suffix"
28

  
29
FILE=$1
30
# make sure file exist and readable
31
if [ ! -f $FILE ]; then 
32
  	echo "$FILE : does not exists"
33
  	exit 1
34
elif [ ! -r $FILE ]; then
35
  	echo "$FILE: can not read"
36
  	exit 2
37
fi
38

  
39

  
40
index=0
41
length=3
42
# read $FILE using the file descriptors
43
exec 3<&0
44
exec 0<$FILE
45
while read line
46
do
47
    if [ "$line" != "" ]
48
    then
49
      # construct metacat with given length of docid
50
      metacatURL="$metacatURL&docid=$line"
51
      index=`expr $index + 1`
52
	    if [ $index -eq $length ]
53
	    then
54
	       echo "here is url $metacatURL"
55
	       wget -q -O - --load-cookies cookies "$metacatURL"
56
	       index=0;
57
	       metacatURL="$metacatBaseURL$suffix"
58
	    fi
59
	fi		
60
done
61

  
62
#This will send out some remained docid
63
if [ $index -ne 0 ]
64
then   
65
    echo "here is url $metacatURL"
66
    wget -q -O - --load-cookies cookies "$metacatURL"
67
fi
68

  
69
exec 0<&3
70
date
71
exit 0
0 72

  
src/scripts/bash/measure-metacat-query-performance.sh
1
#!/bin/bash
2
#Call a java client class to query metacat automatically and metacat server
3
#will record the performance data into a file. Since we need restart postgres,
4
#this script should be run as root user
5
#Note: before running the script, user should run both "ant jar" and "ant clientjar"
6
#in Metacat to get metaca-client.jar and metacat.jar in build directory. 
7

  
8
#variables
9
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar
10
METACAT=../build/metacat.jar
11
METACAT_CLIENT=../build/metacat-client.jar
12
UTILITIES=../lib/utilities.jar
13
METACATURL=http://chico.dyndns.org:8081/knb/metacat
14
QUERY=../test/performance_measure_query
15
TIME=2
16
TOMCATUSER=tao
17

  
18
#copy the java client to build directory
19
rm -rf ../build/tests/
20
mkdir ../build/tests
21
mkdir ../build/tests/edu
22
mkdir ../build/tests/edu/ucsb
23
mkdir ../build/tests/edu/ucsb/nceas
24
mkdir ../build/tests/edu/ucsb/nceas/metacattest
25
cp ../test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java ../build/tests/edu/ucsb/nceas/metacattest/.
26

  
27
#compile the class
28
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES ../build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java 
29

  
30

  
31

  
32

  
33
#Iterate to restart postgres and tomcat, and call java client class
34
for (( i = 0; i < $TIME; i++))
35
do
36
    #retart postgres
37
    /etc/init.d/postgresql-8.2 restart
38
    #Check if posgres restart successfully
39
    successPQL=false;
40
    while [ $successPQL = false ]
41
    do
42
      #if found netstat command has posgres lisenter is ready,
43
      #reset the success value to jump the while loop.
44
      for fn in `netstat -plt | grep postgres`
45
      do
46
        #reset success value
47
        successPQL=true
48
      done
49
    done
50
    echo "success value for restarting postgres is $successPQL"
51

  
52
    #stop tomcat
53
    su - $TOMCATUSER /usr/local/devtools/apache-tomcat-5.5.23/bin/shutdown.sh
54
     #Check if tomcat start successfully
55
    successStop=false;
56
    tomcatRunning=false
57
    while [ $successStop = false ]
58
    do
59
      #if found netstat command still has tcomat lisenter (port 8005) ,
60
      #reset the tomcatRunning value to true
61
      for fn in `netstat -plt | grep 8005`
62
      do
63
        #reset success value
64
        tomcatRunning=true;
65
      done
66
      if [ $tomcatRunning = true ]
67
         then
68
           successStop=false
69
         else
70
           successStop=true
71
      fi
72
    done
73
    echo "success value for stoping tomcat is $successStop"
74
     
75
    #start tomcat
76
   su - $TOMCATUSER  /usr/local/devtools/apache-tomcat-5.5.23/bin/startup.sh
77
    #Check if tomcat start successfully
78
    successStart=false;
79
    while [ $successStart = false ]
80
    do
81
      #if found netstat command has tcomat lisenter (port 8005) is ready,
82
      #reset the success value to jump the while loop.
83
      for fn in `netstat -plt | grep 8005`
84
      do
85
        #reset success value
86
        successStart=true
87
      done
88
    done
89
    echo "success value for starting tomcat is $successStart"
90

  
91

  
92
    #run the class -- query the remote metacat
93
    java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:../build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY
94
    echo "Successfully query the metacat"
95
done
0 96

  
src/scripts/bash/backup-metacat.sh
1
#!/bin/sh
2

  
3
#
4
# Backup files needed for metacat.  This script creates a temporary directory,
5
# backs up the postgres database, metacat data files, and ldap directory, and 
6
# then creates a gzipped tar file from those files.  It then writes the backup
7
# file to a DVD drive and then cleans up any old backup files.
8
#
9
# To run this file, install it in /usr/sbin or a similar location and add an
10
# entry in the root user's crontab to run the command periodically.  The
11
# following crontab entry would run it every night at 2:00 am
12
# 0 2 * * *       /usr/sbin/backup-metacat.sh >> $HOME/cron-output 2>&1
13
#
14
# This is really just an example script and may not work in your environment
15
# uless you modify it appropriately.
16
#
17
# 13 March 2006 Matt Jones
18

  
19
# Name of the metacat database in postgres to be backed up
20
DBNAME=metacat
21

  
22
# The day of the week on which the DVD is swapped (1-7, 1=Monday)
23
# This must be correct or else the write to DVD will not work
24
SWAPDAY=2
25

  
26
# Number of days of backups to keep online, anything older is removed
27
DAYSTOKEEP=7
28

  
29
# Device to be used for the DVD writer -- this may vary on your system
30
DVD=/dev/dvd
31

  
32
#
33
# Below here lie demons
34
#
35

  
36
# Set up our umask to protect files from prying eyes
37
umask 007
38

  
39
# Make a temp dir for the backed up files
40
TAG=`date +%F-%H%M%S`
41
DATADIR="/var/metacat"
42
ARCHROOT="/var/metacat/metacat-backup"
43
mkdir $ARCHROOT
44
chgrp postgres $ARCHROOT
45
chmod g+rwxs $ARCHROOT
46

  
47
ARCHNAME="metacat-backup-$TAG"
48
ARCHDIR="$ARCHROOT/$ARCHNAME"
49
mkdir $ARCHDIR
50

  
51
# Shut down the tomcat server so nobody else changes anything while we backup
52
/etc/init.d/tomcat stop
53

  
54
# Shut down ldap too
55
/etc/init.d/slapd stop
56

  
57
# Backup postgres
58
su - postgres -c "pg_dump $DBNAME > $ARCHDIR/metacat-postgres-backup.sql"
59

  
60
# Backup the data files
61
tar czf $ARCHDIR/datafiles-backup.tgz --exclude=$ARCHROOT $DATADIR
62

  
63
# Backup LDAP to an LDIF file
64
slapcat -l $ARCHDIR/$DBNAME-ldap.ldif
65

  
66
# Restart LDAP
67
/etc/init.d/slapd start
68

  
69
# Restart tomcat
70
/etc/init.d/tomcat start
71

  
72
# Tar up the archive and copy it to archive media
73
cd $ARCHROOT
74
tar czf $ARCHDIR.tgz $ARCHNAME
75

  
76
# Clean up the temp files
77
rm -rf $ARCHDIR
78

  
79
# Write the backup file to DVD
80
DAY=`date +%u`
81
DVDFLAG=-M
82
if [ $DAY == $SWAPDAY ] ; then
83
  DVDFLAG=-Z
84
fi
85
growisofs $DVDFLAG $DVD -R -J $ARCHDIR.tgz
86

  
87
# clean up any of the backup files that are older than DAYSTOKEEP
88
find $ARCHROOT -mtime +$DAYSTOKEEP -exec rm -f {} \;
0 89

  
src/scripts/bash/measure-metacat-query-performance2.sh
1
#!/bin/bash
2
#Call a java client class to query metacat automatically and metacat server
3
#will record the performance data into a file.  This script will be put in /etc/init.d directory
4
#and called in system booting. After script is down, it will call reboot system too.
5
#So every time to excecute the quyer, memory will be in fresh.
6
#Note: before running the script, user should run both "ant jar" and "ant clientjar"
7
#in Metacat to get metaca-client.jar and metacat.jar in build directory. 
8

  
9
#variables
10
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar
11
PROJECT=/home/tao/project/metacat
12
METACATURL=http://chico.dyndns.org:8081/knb/metacat
13
TOMCATUSER=tao
14

  
15

  
16
QUERY=$PROJECT/test/performance_measure_query
17
TIMEFILE=$PROJECT/test/times
18
METACAT=$PROJECT/build/metacat.jar
19
METACAT_CLIENT=$PROJECT/build/metacat-client.jar
20
UTILITIES=$PROJECT/lib/utilities.jar
21

  
22
#copy the java client to build directory
23
rm -rf $PROJECT/build/tests/
24
mkdir -p $PROJECT/build/tests/edu/ucsb/nceas/metacattest
25
cp $PROJECT/test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java $PROJECT/build/tests/edu/ucsb/nceas/metacattest/.
26

  
27
#compile the class
28
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES $PROJECT/build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java 
29

  
30

  
31
case "$1" in
32
  start)
33
    echo "Starting running query script"
34
    #Iterate to restart postgres and tomcat, and call java client class
35
    TIMES=`cat $TIMEFILE`
36
    echo "The value from TIMEFILE is $TIMES" 
37
    #if times greater than 0, it will query the metacat
38
    if [ $TIMES -gt 0 ]
39
      then
40
      #Check if postgres start successfully
41
      successPQL=false;
42
      while [ $successPQL = false ]
43
         do
44
             #if found netstat command has posgres lisenter is ready,
45
             #reset the success value to jump the while loop.
46
             for fn in `netstat -plt | grep postgres`
47
               do
48
                 #reset success value
49
                 successPQL=true
50
            done
51
      done
52
      echo "success value for starting postgres is $successPQL"
53
      #Check if tomcat start successfully
54
      successStart=false;
55
      while [ $successStart = false ]
56
        do
57
           #if found netstat command has tcomat lisenter (port 8005) is ready,
58
           #reset the success value to jump the while loop.
59
           for fn in `netstat -plt | grep 8005`
60
             do
61
                #reset success value
62
                successStart=true
63
           done
64
      done
65
     echo "success value for starting tomcat is $successStart"
66
     #run the class -- query the remote metacat
67
      java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:$PROJECT/build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY
68
      echo "Successfully query the metacat"
69
      #Drecease 1 from value of TIMES
70
      TIMES=`expr $TIMES - 1`
71
      echo "The new TIMES value  is $TIMES"
72
      #write the new TIMES to the file
73
      echo $TIMES >$TIMEFILE
74
      #reboot machine
75
      reboot
76
    fi
77
   ;;
78
 stop)
79
    echo "Stopping running query script - do nothing"
80
     ;;
81
  *)
82
    echo "Usage: /etc/init.d/blah {start|stop}"
83
    exit 1
84
    ;;
85
esac
86

  
87
exit 0
88
 
0 89

  
src/scripts/bash/check_shape_file_existence.sh
1
#!/bin/bash
2
#This file will check if shape files exist or not.
3
#If one is deleted and a email will be sent to tao with the tomcat log.
4
#Note: if file eml_message already exists in current dir, email wouldn't send again.
5
#This setting will make sure only one email will sent. Otherwise, my email account will be over quota.
6
target_file1=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_points.dbf
7
target_file2=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_points.shp
8
target_file3=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_points.shx
9
target_file4=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_bounds.dbf
10
target_file5=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_bounds.shp
11
target_file6=/var/www/org.ecoinformatics.knb/knb/data/metacat_shps/data_bounds.shx
12

  
13
log_file=/var/log/tomcat/catalina.out
14
sender_email_address=knb_tomcat@ecoinformatics.org
15
receiver_email_address=tao@nceas.ucsb.edu
16
tmp=/root/email_message
17
if [ ! -e $target_file1 -o ! -e $target_file2 -o ! -e $target_file3 -o ! -e $target_file4 -o ! -e $target_file5 -o ! -e $target_file6 ]
18
 then
19
   if [ ! -e $tmp ]
20
     then
21
       touch $tmp && chmod 600 $tmp
22
       echo -e "subject: Shape file was deleted at `date`\n" > $tmp
23
       echo -e "\n log file info: " >> $tmp
24
       echo -e "\n `tail -300 $log_file`" >> $tmp
25
       /usr/sbin/sendmail -f $sender_email_address $receiver_email_address < $tmp
26
   fi
27
fi
0 28

  

Also available in: Unified diff