Revision: 7945
http://syscheck.svn.sourceforge.net/syscheck/?rev=7945&view=rev
Author: kinneh
Date: 2011-08-10 14:43:17 +0000 (Wed, 10 Aug 2011)
Log Message:
-----------
closes #55 add a syscheck script to verify db is in sync
Modified Paths:
--------------
trunk/syscheck/database-replication/808-test-table-update-and-check-master-and-slave.sh
Added Paths:
-----------
trunk/syscheck/config/301.conf
trunk/syscheck/lang/301.english
trunk/syscheck/scripts-available/sc_301_check_db_sync.sh
Added: trunk/syscheck/config/301.conf
===================================================================
--- trunk/syscheck/config/301.conf (rev 0)
+++ trunk/syscheck/config/301.conf 2011-08-10 14:43:17 UTC (rev 7945)
@@ -0,0 +1,2 @@
+#config for sc_30_check_sync.sh
+#no config
Modified: trunk/syscheck/database-replication/808-test-table-update-and-check-master-and-slave.sh
===================================================================
--- trunk/syscheck/database-replication/808-test-table-update-and-check-master-and-slave.sh 2011-08-09 11:50:25 UTC (rev 7944)
+++ trunk/syscheck/database-replication/808-test-table-update-and-check-master-and-slave.sh 2011-08-10 14:43:17 UTC (rev 7945)
@@ -4,6 +4,7 @@
#the table is created in the EJBCA database and contains a int columnt test
#with the value on 1.
#
+# mzbradm 110726 Update with two Variabels that is used in the script SYSCHECK_HOME/script-avalible/sc_30_check_sync.sh
# Set SYSCHECK_HOME if not already set.
@@ -31,9 +32,27 @@
echo "cleaning and inserting new val: $newval into HOSTNAME_NODE1:$HOSTNAME_NODE1"
echo "delete from test" | $MYSQL_BIN $DB_NAME -u ${DB_USER} --password=${DB_PASSWORD} -h $HOSTNAME_NODE1
echo "insert into test set value=$newval" | $MYSQL_BIN $DB_NAME -u ${DB_USER} --password=${DB_PASSWORD} -h $HOSTNAME_NODE1
+sleep 1
-sleep 1
+# Create sqlscript
+echo "SELECT value from test;">/tmp/select.sql
+echo "SELECT max(updateTime) from CertificateData;">/tmp/select1.sql
+# Check the value in table test
+VALUE_NODE1=`$MYSQL_BIN $DB_NAME -h $HOSTNAME_NODE1 -u ${DB_USER} --password=${DB_PASSWORD} </tmp/select.sql`
+export VALUE_NODE1
echo "values from $HOSTNAME_NODE1"
-echo "SELECT value from test;" | $MYSQL_BIN $DB_NAME -h $HOSTNAME_NODE1 -u ${DB_USER} --password=${DB_PASSWORD}
+echo $VALUE_NODE1
+VALUE_NODE2=`$MYSQL_BIN $DB_NAME -h $HOSTNAME_NODE2 -u ${DB_USER} --password=${DB_PASSWORD} </tmp/select.sql`
echo "values from $HOSTNAME_NODE2"
-echo "SELECT value from test;" | $MYSQL_BIN $DB_NAME -h $HOSTNAME_NODE2 -u ${DB_USER} --password=${DB_PASSWORD}
+echo $VALUE_NODE2
+export VALUE_NODE1 VALUE_NODE2
+
+# Get time when table CertificateData was last updated
+LASTUPD_NODE1=`$MYSQL_BIN $DB_NAME -h $HOSTNAME_NODE1 -u ${DB_USER} --password=${DB_PASSWORD} </tmp/select1.sql`
+LASTUPD_NODE1=`echo $LASTUPD_NODE1 |awk '{print $2/1000}'`
+LASTUPD_NODE1=`perl -e "print scalar(localtime($LASTUPD_NODE1))"|awk '{print $3,$2,$4,$5}'`
+LASTUPD_NODE2=`$MYSQL_BIN $DB_NAME -h $HOSTNAME_NODE2 -u ${DB_USER} --password=${DB_PASSWORD} </tmp/select1.sql`
+LASTUPD_NODE2=`echo $LASTUPD_NODE2 |awk '{print $2/1000}'`
+LASTUPD_NODE2=`perl -e "print scalar(localtime($LASTUPD_NODE2))"|awk '{print $3,$2,$4,$5}'`
+echo "Lastupdate in CertificateData on $HOSTNAME_NODE1 $LASTUPD_NODE1"
+echo "Lastupdate in CertificateData on $HOSTNAME_NODE2 $LASTUPD_NODE2"
Added: trunk/syscheck/lang/301.english
===================================================================
--- trunk/syscheck/lang/301.english (rev 0)
+++ trunk/syscheck/lang/301.english 2011-08-10 14:43:17 UTC (rev 7945)
@@ -0,0 +1,7 @@
+SYNC_HELP="Check if DB in sync"
+
+SYNC_DESCR_1="DB in sync"
+SYNC_HELP_1="and updating databases"
+
+SYNC_DESCR_2="DB not in sync, date of CertificateData diff betwin nodes:"
+SYNC_HELP_2="check error.log, probebly needing manual sync, se manual"
Added: trunk/syscheck/scripts-available/sc_301_check_db_sync.sh
===================================================================
--- trunk/syscheck/scripts-available/sc_301_check_db_sync.sh (rev 0)
+++ trunk/syscheck/scripts-available/sc_301_check_db_sync.sh 2011-08-10 14:43:17 UTC (rev 7945)
@@ -0,0 +1,66 @@
+#!/bin/bash
+# Script that checks if the sync of Db works
+# Use SYSCHECK_HOME/database-replication/808-test-table-update-and-check-master-and-slave.sh as source of information
+# Set SYSCHECK_HOME if not already set.
+
+# 1. First check if SYSCHECK_HOME is set then use that
+if [ "x${SYSCHECK_HOME}" = "x" ] ; then
+# 2. Check if /etc/syscheck.conf exists then source that (put SYSCHECK_HOME=/path/to/syscheck in ther)
+ if [ -e /etc/syscheck.conf ] ; then
+ source /etc/syscheck.conf
+ else
+# 3. last resort use default path
+ SYSCHECK_HOME="/usr/local/syscheck"
+ fi
+fi
+
+if [ ! -f ${SYSCHECK_HOME}/syscheck.sh ] ; then echo "$0: Can't find syscheck.sh in SYSCHECK_HOME ($SYSCHECK_HOME)" ;exit ; fi
+
+
+
+
+
+## Import common definitions ##
+. $SYSCHECK_HOME/config/syscheck-scripts.conf
+
+# uniq ID of script (please use in the name of this file also for convinice for finding next availavle number)
+SCRIPTID=301
+
+SYNC_ERRNO_1=${SCRIPTID}01
+SYNC_ERRNO_2=${SCRIPTID}02
+
+getlangfiles $SCRIPTID
+getconfig $SCRIPTID
+
+# help
+if [ "x$1" = "x--help" ] ; then
+ echo "$0 $SYNC_HELP"
+ echo "$SYNC_ERRNO_1/$SYNC_DESCR_1 - $SYNC_HELP_1"
+ echo "$SYNC_ERRNO_2/$SYNC_DESCR_2 - $SYNC_HELP_2"
+ exit
+elif [ "x$1" = "x-s" -o "x$1" = "x--screen" ] ; then
+ PRINTTOSCREEN=1
+fi
+if [ ! -f $SYSCHECK_HOME/database-replication/808-test-table-update-and-check-master-and-slave.sh ]
+then
+echo " missing script, $SYSCHECK_HOME/database-replication/808-test-table-update-and-check-master-and-slave.sh"
+exit
+fi
+. $SYSCHECK_HOME/database-replication/808-test-table-update-and-check-master-and-slave.sh >/dev/null
+###echo $VALUE_NODE1 $VALUE_NODE2
+NODE1=`echo $VALUE_NODE1|awk '{print $2}'`
+NODE2=`echo $VALUE_NODE2|awk '{print $2}'`
+if [ $NODE1 != $NODE2 ]
+then
+ sync=FAIL
+
+SYNCDATE=`perl -e "print scalar(localtime($NODE2))"|awk '{print $3,$2,$4,$5}'`
+fi
+
+# Sends an error to syslog if x"$sync" is FAIL.
+if [ "x$sync" = "xFAIL" ] ; then
+ printlogmess "$ERROR" "$SYNC_ERRNO_2" "$SYNC_DESCR_2 $LASTUPD_NODE1 /$LASTUPD_NODE2"
+else
+ printlogmess "$INFO" "$SYNC_ERRNO_1" "$SYNC_DESCR_1"
+fi
+
Property changes on: trunk/syscheck/scripts-available/sc_301_check_db_sync.sh
___________________________________________________________________
Added: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|