This script is to get a backup of all databases to either send them to a test server, just a backup or send them for support.
Name:
datadump
Script:Script Located here:
#!https:/bin/bash ############################################################################## # # Added by Steve Ling 20230727 # Modified Steve Ling 20230804 # # This is to ask the user for which printer they wish to use # ############################################################################## if [ `uname` = "Linux" ] ; then #stty erase necho="echo -e" BOLD="\033[1m" UNDER="\033[4m" UNDERSTOP="\033[0m" BLINK="\033[5m" REVVIDEO=`tput smso` NORMTYP="\033[0m" else necho="echo" BOLD=`tput bold` UNDER=`tput smul` UNDERSTOP=`tput rmul` BLINK=`tput blink` REVVIDEO=`tput smso` NORMTYP=`tput rmso` fi ############################################################## # Set Menu Header start point # To include variables for menu header ############################################################## # Display Date # clear DATE=`date +"%d/%a %H:%M"` ############################################################## # Display layout of Menu Header ############################################################## # $necho "Backup ${BOLD}Backup Menu ${NORMTYP} $DATE" $necho "================================================================================" $necho "" # # This script captures datasets and logs and then sends them to a server for pickup # Please update these variables for each site # # For FTP make sure .netrc is setup so that FTP works without prompts # If the site has no FTP ability then leave this FTPSERVER blank # DBHOST=localhost SITENAME=$PLANTID MYSQLUSER=kiwisql MYSQLPASS=800486kiwi #FTPSERVER= # # If LOGS is not set we will use either $VLOG or $JCSC/logs or $JLOG. # If the site has no VUE products then leave the SITE and CONF variable blank # If MAPDATA is not set it will use $DATA. For pure VUE sites set MAPDATA to NONE # SITE=/KIWI/services/sites/${SITENAME} #MAPDATA=/KIWI/site_${SITENAME}/data_${SITENAME} MAPDATA=/KIWI/site_${SITENAME}/data_${SITENAME} LOGS=${SITE}/current/logs CONF=${SITE}/current/conf COMMDIR=${COMMSDIR} XMITDIR=/KIWI/site_${SITENAME}/work/corrop/ # echo "" echo "Choose what to do with the backup" echo "" echo "1) Rsync/Send to a internal Dev or Test Server" echo "2) Just a backup" echo "X) Exit" echo "" echo "You have to choose a number, you have 5 seconds" read FTPSERVER case $FTPSERVER in 1) echo "Enter the hostname or IP of the server" read HOSTSERVER FTPSERVER=$HOSTSERVER ;; 2) FTPSERVER=BACKUP ;; *) exit ;; esac # # # Determine SITE and MAPDATA variables # if [ ! -d "$SITE" ]; then echo "Kiwiplan Vue Site not a valid directory: $SITE. No Vue data will be saved." SITE="" fi if [ "$CONF" = "" -a "$VUE" != "None" ];then cd $SITE cd ../conf CONF=`pwd` fi if [ "$CONF" = "" -a "$VUE" != "None" ];then echo "CONF not defined or found, script can not be run" exit fi if [ "$MAPDATA" = "" ];then MAPDATA=$DATA fi if [ "$MAPDATA" = "" ];then echo "Do not know where classic MAP dataset lives. Assuming it is a pure VUE site" MAPDATA="NONE" fi # # The following variables can be passed in to the script # $1 = NAME of dataset # $2 or $3 or $4 or $5 = NOQMS or NOLOGS or NOXMIT or NOCOMMS # FIRSTCHAR=`echo "$1"|cut -c1-2` if [ "$FIRSTCHAR" = "NO" ];then VARI1="" VARI2=$1 VARI3=$2 VARI4=$3 VARI5=$4 else VARI1=$1 VARI2=$2 VARI3=$3 VARI4=$4 VARI5=$5 fi # # Determine dumpfile name # cd $HOME if [ "$VARI1" = "" ];then DUMPNAME=`date +%m%d%H%M` else DUMPNAME=$VARI1 fi # # Determine which databases to dump from recentparameters file # echo "Placing datasets in $HOME directory" if [ "$VARI2" = "NOQMS" -o "$VARI3" = "NOQMS" -o "$VARI4" = "NOQMS" -o "$VARI5" = "NOQMS" ];then NOQMS=1 else NOQMS=0 fi count=1 if [ "$VUE" != "None" ];then LINES=`cat $CONF/recentparametervalues.properties|grep DBNAME |grep -v "kids"|wc -l|tr -d " "` while [ $count -le $LINES ];do DATANAME=`grep DBNAME $CONF/recentparametervalues.properties |grep -v "kids"|cut -d"=" -f2|head -$count|tail -1` DATABASE=`grep DBNAME $CONF/recentparametervalues.properties |grep -v "kids"|cut -d"=" -f2|head -$count|tail -1|cut -d"_" -f2` if [ "$NOQMS" = "1" ];then echo $DATANAME|grep qms > /dev/null if [ $? -eq 0 ];then echo "Not creating QMS database at user request" else echo "Creating $SITENAME.$DATABASE.dump" mysqldump --single-transaction --tz-utc=false -h$DBHOST -u$MYSQLUSER -p$MYSQLPASS $DATANAME > $SITENAME.$DATABASE.dump fi else echo "Creating $SITENAME.$DATABASE.dump" mysqldump --single-transaction --tz-utc=false -h$DBHOST -u$MYSQLUSER -p$MYSQLPASS $DATANAME > $SITENAME.$DATABASE.dump fi count=`expr $count + 1` done # # Capture preference bundles # cd $CONF/preferencebundles/kiwiplan tar cf $HOME/$SITENAME.preferencebundles.dump * cd $HOME # # Capture licence files # cd $CONF/licence tar cf $HOME/$SITENAME.licence.dump * # # Capture Conf database file # cd $CONF tar cf $HOME/$SITENAME.parameters.dump recentparametervalues.properties fi # # Capture classic dataset unless Pure VUE # cd $HOME if [ "$MAPDATA" != "NONE" ];then if [ -f $MAPDATA/kwsql ];then CLASSIC=`grep "DATA=" $MAPDATA/kwsql|cut -d"=" -f2` echo "Dumping MySQL data from $CLASSIC classic dataset" mysqldump --single-transaction --tz-utc=false -h$DBHOST -u$MYSQLUSER -p$MYSQLPASS $CLASSIC > $SITENAME.classic.dump else cd $MAPDATA echo "Taring ISAM data from $MAPDATA classic dataset" tar cf $HOME/$SITENAME.classic.dump *.PH INDEX* PARAM* upgrade* cd $HOME fi else echo "No MAPDATA defined...ignoring classic dataset capture" fi # # Capture log files # if [ "$VARI2" = "NOLOGS" -o "$VARI3" = "NOLOGS" -o "$VARI4" = "NOLOGS" -o "$VARI5" = "NOXMIT" ];then NOLOGS=1 else NOLOGS=0 fi if [ "$VARI2" = "NOXMIT" -o "$VARI3" = "NOXMIT" -o "$VARI4" = "NOXMIT" -o "$VARI5" = "NOXMIT" ];then NOXMIT=1 else NOXMIT=0 fi if [ "$VARI2" = "NOCOMMS" -o "$VARI3" = "NOCOMMS" -o "$VARI4" = "NOCOMMS" -o "$VARI5" = "NOCOMMS" ];then NOCOMMS=1 else NOCOMMS=0 fi if [ "$VARI2" = "NOLG" -o "$VARI3" = "NOLG" -o "$VARI4" = "NOLG" -o "$VARI5" = "NOLG" ];then NOLG=1 else NOLG=0 fi if [ "$NOLOGS" = 0 ];then if [ "$VUE" != "None" ];then echo "Capturing VUE log files from $LOGS" tar cfz $SITENAME.logs.dump $LOGS/*.txt* 2>/dev/null else echo "Not capturing VUE log files from $SITE" fi if [ "$NOXMIT" = 0 -a "$XMITDIR" != "" -a -d "$XMITDIR" ];then echo "Capturing XMIT log files from $XMITDIR" tar cfz $SITENAME.xmgen.dump $XMITDIR/XM*.LOG 2>/dev/null else echo "Not capturing XMIT log files from $XMITDIR" fi if [ "$NOCOMMS" = 0 -a "$COMMDIR" != "" ];then echo "Capturing COMMS log files from $COMMDIR" tar cfz $SITENAME.comms.dump $COMMDIR/CO*.LOG 2>/dev/null else echo "Not capturing COMMS log files from $COMMDIR" fi if [ "$NOLG" = 0 -a "$MAPDATA" != "" ];then echo "Capturing Classic LG log files from $MAPDATA" tar cfz $SITENAME.lg.dump $MAPDATA/*.LG $MAPDATA/*.LG1 2>/dev/null else echo "Not capturing Classic LG log files from $MAPDATA" fi fi # # Compress data # cd $HOME echo "Compressing dump files" gzip -f $SITENAME.*.dump # # Create master dumpfile # echo "Creating single dump file $SITENAME.$DUMPNAME.dump.tar" tar cf $SITENAME.$DUMPNAME.dump.tar $SITENAME.*.dump.gz # # FTP dataset # if [ "$FTPSERVER" != "BACKUP" ];then echo "Rsync'ing $SITENAME.$DUMPNAME.dump.tar to $FTPSERVER" rsync -chavzP --stats -e ssh $HOME/$SITENAME.$DUMPNAME.dump.tar $FTPSERVER:$HOME/ fi # # Remove old dumpfiles # cd $HOME echo "Removing $SITENAME.dump.gz files" find $SITENAME.*.dump.gz -type f -delete echo "Removing old $SITENAME.dump.tar files" find $SITENAME.*.dump.tar -mtime +5 -type f -delete #End Script ######################################################
https:/bin/bash ############################################################################## # # Added by Steve Ling 20230727 # Modified Steve Ling 20230804 # # This is to ask the user for which printer they wish to use # ############################################################################## if [ `uname` = "Linux" ] ; then #stty erase necho="echo -e" BOLD="\033[1m" UNDER="\033[4m" UNDERSTOP="\033[0m" BLINK="\033[5m" REVVIDEO=`tput smso` NORMTYP="\033[0m" else necho="echo" BOLD=`tput bold` UNDER=`tput smul` UNDERSTOP=`tput rmul` BLINK=`tput blink` REVVIDEO=`tput smso` NORMTYP=`tput rmso` fi ############################################################## # Set Menu Header start point # To include variables for menu header ############################################################## # Display Date # clear DATE=`date +"%d/%a %H:%M"` ############################################################## # Display layout of Menu Header ############################################################## # $necho "Backup ${BOLD}Backup Menu ${NORMTYP} $DATE" $necho "================================================================================" $necho "" # # This script captures datasets and logs and then sends them to a server for pickup # Please update these variables for each site # # For FTP make sure .netrc is setup so that FTP works without prompts # If the site has no FTP ability then leave this FTPSERVER blank # DBHOST=localhost SITENAME=$PLANTID MYSQLUSER=kiwisql MYSQLPASS=800486kiwi #FTPSERVER= # # If LOGS is not set we will use either $VLOG or $JCSC/logs or $JLOG. # If the site has no VUE products then leave the SITE and CONF variable blank # If MAPDATA is not set it will use $DATA. For pure VUE sites set MAPDATA to NONE # SITE=/KIWI/services/sites/${SITENAME} #MAPDATA=/KIWI/site_${SITENAME}/data_${SITENAME} MAPDATA=/KIWI/site_${SITENAME}/data_${SITENAME} LOGS=${SITE}/current/logs CONF=${SITE}/current/conf COMMDIR=${COMMSDIR} XMITDIR=/KIWI/site_${SITENAME}/work/corrop/ # echo "" echo "Choose what to do with the backup" echo "" echo "1) Rsync/Send to a internal Dev or Test Server" echo "2) Just a backup" echo "X) Exit" echo "" echo "You have to choose a number, you have 5 seconds" read FTPSERVER case $FTPSERVER in 1) echo "Enter the hostname or IP of the server" read HOSTSERVER FTPSERVER=$HOSTSERVER ;; 2) FTPSERVER=BACKUP ;; *) exit ;; esac # # # Determine SITE and MAPDATA variables # if [ ! -d "$SITE" ]; then echo "Kiwiplan Vue Site not a valid directory: $SITE. No Vue data will be saved." SITE="" fi if [ "$CONF" = "" -a "$VUE" != "None" ];then cd $SITE cd ../conf CONF=`pwd` fi if [ "$CONF" = "" -a "$VUE" != "None" ];then echo "CONF not defined or found, script can not be run" exit fi if [ "$MAPDATA" = "" ];then MAPDATA=$DATA fi if [ "$MAPDATA" = "" ];then echo "Do not know where classic MAP dataset lives. Assuming it is a pure VUE site" MAPDATA="NONE" fi # # The following variables can be passed in to the script # $1 = NAME of dataset # $2 or $3 or $4 or $5 = NOQMS or NOLOGS or NOXMIT or NOCOMMS # FIRSTCHAR=`echo "$1"|cut -c1-2` if [ "$FIRSTCHAR" = "NO" ];then VARI1="" VARI2=$1 VARI3=$2 VARI4=$3 VARI5=$4 else VARI1=$1 VARI2=$2 VARI3=$3 VARI4=$4 VARI5=$5 fi # # Determine dumpfile name # cd $HOME if [ "$VARI1" = "" ];then DUMPNAME=`date +%m%d%H%M` else DUMPNAME=$VARI1 fi # # Determine which databases to dump from recentparameters file # echo "Placing datasets in $HOME directory" if [ "$VARI2" = "NOQMS" -o "$VARI3" = "NOQMS" -o "$VARI4" = "NOQMS" -o "$VARI5" = "NOQMS" ];then NOQMS=1 else NOQMS=0 fi count=1 if [ "$VUE" != "None" ];then LINES=`cat $CONF/recentparametervalues.properties|grep DBNAME |grep -v "kids"|wc -l|tr -d " "` while [ $count -le $LINES ];do DATANAME=`grep DBNAME $CONF/recentparametervalues.properties |grep -v "kids"|cut -d"=" -f2|head -$count|tail -1` DATABASE=`grep DBNAME $CONF/recentparametervalues.properties |grep -v "kids"|cut -d"=" -f2|head -$count|tail -1|cut -d"_" -f2` if [ "$NOQMS" = "1" ];then echo $DATANAME|grep qms > /dev/null if [ $? -eq 0 ];then echo "Not creating QMS database at user request" else echo "Creating $SITENAME.$DATABASE.dump" mysqldump --single-transaction --tz-utc=false -h$DBHOST -u$MYSQLUSER -p$MYSQLPASS $DATANAME > $SITENAME.$DATABASE.dump fi else echo "Creating $SITENAME.$DATABASE.dump" mysqldump --single-transaction --tz-utc=false -h$DBHOST -u$MYSQLUSER -p$MYSQLPASS $DATANAME > $SITENAME.$DATABASE.dump fi count=`expr $count + 1` done # # Capture preference bundles # cd $CONF/preferencebundles/kiwiplan tar cf $HOME/$SITENAME.preferencebundles.dump * cd $HOME # # Capture licence files # cd $CONF/licence tar cf $HOME/$SITENAME.licence.dump * # # Capture Conf database file # cd $CONF tar cf $HOME/$SITENAME.parameters.dump recentparametervalues.properties fi # # Capture classic dataset unless Pure VUE # cd $HOME if [ "$MAPDATA" != "NONE" ];then if [ -f $MAPDATA/kwsql ];then CLASSIC=`grep "DATA=" $MAPDATA/kwsql|cut -d"=" -f2` echo "Dumping MySQL data from $CLASSIC classic dataset" mysqldump --single-transaction --tz-utc=false -h$DBHOST -u$MYSQLUSER -p$MYSQLPASS $CLASSIC > $SITENAME.classic.dump else cd $MAPDATA echo "Taring ISAM data from $MAPDATA classic dataset" tar cf $HOME/$SITENAME.classic.dump *.PH INDEX* PARAM* upgrade* cd $HOME fi else echo "No MAPDATA defined...ignoring classic dataset capture" fi # # Capture log files # if [ "$VARI2" = "NOLOGS" -o "$VARI3" = "NOLOGS" -o "$VARI4" = "NOLOGS" -o "$VARI5" = "NOXMIT" ];then NOLOGS=1 else NOLOGS=0 fi if [ "$VARI2" = "NOXMIT" -o "$VARI3" = "NOXMIT" -o "$VARI4" = "NOXMIT" -o "$VARI5" = "NOXMIT" ];then NOXMIT=1 else NOXMIT=0 fi if [ "$VARI2" = "NOCOMMS" -o "$VARI3" = "NOCOMMS" -o "$VARI4" = "NOCOMMS" -o "$VARI5" = "NOCOMMS" ];then NOCOMMS=1 else NOCOMMS=0 fi if [ "$VARI2" = "NOLG" -o "$VARI3" = "NOLG" -o "$VARI4" = "NOLG" -o "$VARI5" = "NOLG" ];then NOLG=1 else NOLG=0 fi if [ "$NOLOGS" = 0 ];then if [ "$VUE" != "None" ];then echo "Capturing VUE log files from $LOGS" tar cfz $SITENAME.logs.dump $LOGS/*.txt* 2>/dev/null else echo "Not capturing VUE log files from $SITE" fi if [ "$NOXMIT" = 0 -a "$XMITDIR" != "" -a -d "$XMITDIR" ];then echo "Capturing XMIT log files from $XMITDIR" tar cfz $SITENAME.xmgen.dump $XMITDIR/XM*.LOG 2>/dev/null else echo "Not capturing XMIT log files from $XMITDIR" fi if [ "$NOCOMMS" = 0 -a "$COMMDIR" != "" ];then echo "Capturing COMMS log files from $COMMDIR" tar cfz $SITENAME.comms.dump $COMMDIR/CO*.LOG 2>/dev/null else echo "Not capturing COMMS log files from $COMMDIR" fi if [ "$NOLG" = 0 -a "$MAPDATA" != "" ];then echo "Capturing Classic LG log files from $MAPDATA" tar cfz $SITENAME.lg.dump $MAPDATA/*.LG $MAPDATA/*.LG1 2>/dev/null else echo "Not capturing Classic LG log files from $MAPDATA" fi fi # # Compress data # cd $HOME echo "Compressing dump files" gzip -f $SITENAME.*.dump # # Create master dumpfile # echo "Creating single dump file $SITENAME.$DUMPNAME.dump.tar" tar cf $SITENAME.$DUMPNAME.dump.tar $SITENAME.*.dump.gz # # FTP dataset # if [ "$FTPSERVER" != "BACKUP" ];then echo "Rsync'ing $SITENAME.$DUMPNAME.dump.tar to $FTPSERVER" rsync -chavzP --stats -e ssh $HOME/$SITENAME.$DUMPNAME.dump.tar $FTPSERVER:$HOME/ fi # # Remove old dumpfiles # cd $HOME echo "Removing $SITENAME.dump.gz files" find $SITENAME.*.dump.gz -type f -delete echo "Removing old $SITENAME.dump.tar files" find $SITENAME.*.dump.tar -mtime +5 -type f -delete #End Script ######################################################