From 04c09647d7d73a4a9b78db4e620b788bf4c1f24c Mon Sep 17 00:00:00 2001 From: woogerboy21 Date: Sat, 11 Jul 2015 11:22:54 -0400 Subject: [PATCH] Update DB Scripts Added backup / restore scripts. Added table size script Updated existing scripts to use variable location for mysql.cnf file --- servatrice/scripts/File.History | Bin 0 -> 3805 bytes servatrice/scripts/db_backup_all | 44 +++++++++++++++ servatrice/scripts/db_restore_all | 50 ++++++++++++++++++ servatrice/scripts/info_db_tablesize | 3 ++ .../maint_removeinactiveplayeraccounts | 3 +- servatrice/scripts/maint_replays | 3 +- servatrice/scripts/maint_sessions | 3 +- servatrice/scripts/setup_addfirstadmin | 3 +- 8 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 servatrice/scripts/File.History create mode 100644 servatrice/scripts/db_backup_all create mode 100644 servatrice/scripts/db_restore_all create mode 100644 servatrice/scripts/info_db_tablesize diff --git a/servatrice/scripts/File.History b/servatrice/scripts/File.History new file mode 100644 index 0000000000000000000000000000000000000000..00e52f20a863e12cb4e2e89dbd4750bcd5017504 GIT binary patch literal 3805 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 literal 0 HcmV?d00001 diff --git a/servatrice/scripts/db_backup_all b/servatrice/scripts/db_backup_all new file mode 100644 index 00000000..42d329d2 --- /dev/null +++ b/servatrice/scripts/db_backup_all @@ -0,0 +1,44 @@ +#!/bin/bash +SLEEPTIME=5 +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +LOGAPPENDDATE=`date +%m%d%Y` +EXPIRATION=`date +%m%d%Y -d "-3 days"` +DBNAME="servatrice" +APPNAME="servatrice" +ROOTFOLDER="./backups" #set this to the root path you want backups to be stored in +BACKUPDIR="$ROOTFOLDER/$LOGAPPENDDATE/db/$APPNAME" +TABLES=( + "cockatrice_users" + "cockatrice_decklist_files" + "cockatrice_replays" + "cockatrice_buddylist" + "cockatrice_ignorelist" + "cockatrice_bans" + "cockatrice_sessions" + "cockatrice_decklist_folders" + "cockatrice_replays_access" + "cockatrice_games" + "cockatrice_games_players" + "cockatrice_uptime" + "cockatrice_schema_version" + "cockatrice_servermessages" + "cockatrice_servers" + "cockatrice_news" + "cockatrice_rooms" + "cockatrice_rooms_gametypes" + ) +/home/wwadmin/scripts/db_maint_logs +PROCESSNAME="mysqldump" +#COMMANDRESULTS=`ps -e |grep $PROCESSNAME |grep -v grep` +if [ -z "$COMMANDRESULTS" ]; +then + [ ! -d $BACKUPDIR ] && mkdir -p $BACKUPDIR/ + for TABLENAME in "${TABLES[@]}" + do + BACKUPFILE="$BACKUPDIR/$APPNAME.$TABLENAME.sql.$LOGAPPENDDATE" + echo "Backing up DB Table [$TABLENAME]" + ionice -c3 nice -n19 mysqldump --defaults-file=$SQLCONFFILE $DBNAME $TABLENAME > $BACKUPFILE + sleep $SLEEPTIME + done + rm -rf "$ROOTFOLDER/$EXPIRATION/" +fi diff --git a/servatrice/scripts/db_restore_all b/servatrice/scripts/db_restore_all new file mode 100644 index 00000000..e1d1c354 --- /dev/null +++ b/servatrice/scripts/db_restore_all @@ -0,0 +1,50 @@ +#!/bin/bash +SLEEPTIME=5 +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +LOGAPPENDDATE=`date +%m%d%Y` +EXPIRATION=`date +%m%d%Y -d "-3 days"` +DBNAME="servatrice" +APPNAME="servatrice" +ROOTFOLDER="./backups" #set this to the root path that contains the backup files +BACKUPDIR="$ROOTFOLDER/$LOGAPPENDDATE/db/$APPNAME" +TABLES=( + "cockatrice_users" + "cockatrice_decklist_files" + "cockatrice_replays" + "cockatrice_buddylist" + "cockatrice_ignorelist" + "cockatrice_bans" + "cockatrice_sessions" + "cockatrice_decklist_folders" + "cockatrice_replays_access" + "cockatrice_games" + "cockatrice_games_players" + "cockatrice_uptime" + "cockatrice_schema_version" + "cockatrice_servermessages" + "cockatrice_servers" + "cockatrice_news" + "cockatrice_rooms" + "cockatrice_rooms_gametypes" + ) +/home/wwadmin/scripts/db_maint_logs +PROCESSNAME="mysqldump" +#COMMANDRESULTS=`ps -e |grep $PROCESSNAME |grep -v grep` +if [ -z "$COMMANDRESULTS" ]; +then + [ ! -d $BACKUPDIR ] && mkdir -p $BACKUPDIR/ + for TABLENAME in "${TABLES[@]}" + do + BACKUPFILE="$BACKUPDIR/$APPNAME.$TABLENAME.sql.$LOGAPPENDDATE" + if [ -f "$BACKUPFILE" ] + then + echo "Restoring up DB Table [$TABLENAME]" + ionice -c3 nice -n19 mysql --defaults-file=$SQLCONFFILE $DBNAME < $BACKUPFILE + sleep $SLEEPTIME + else + echo "Missing backup file [$$TABLENAME]" + sleep $SLEEPTIME + fi + done + rm -rf "$ROOTFOLDER/$EXPIRATION/" +fi diff --git a/servatrice/scripts/info_db_tablesize b/servatrice/scripts/info_db_tablesize new file mode 100644 index 00000000..a558155e --- /dev/null +++ b/servatrice/scripts/info_db_tablesize @@ -0,0 +1,3 @@ +#!/bin/bash +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +mysql --defaults-file=$SQLCONFFILE -e 'SELECT table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" FROM information_schema.TABLES WHERE table_schema = "servatrice" ORDER BY (data_length + index_length) DESC;' diff --git a/servatrice/scripts/maint_removeinactiveplayeraccounts b/servatrice/scripts/maint_removeinactiveplayeraccounts index cf72f069..75b2775f 100644 --- a/servatrice/scripts/maint_removeinactiveplayeraccounts +++ b/servatrice/scripts/maint_removeinactiveplayeraccounts @@ -1,3 +1,4 @@ #!/bin/bash # SCHEDULE WITH CRONTAB BASED ON TIME PERIOD UNACTIVE ACCOUNT SHOULD BE REMOVED. UPDATE INTERVAL DATE TO BE NUMBER OF DAYS OLD (OR OLDER) TO REMOVE. -mysql --defaults-file=./mysql.cnf -h localhost -e 'delete from servatrice.cockatrice_users where registrationDate < DATE_SUB(now(), INTERVAL 5 DAY) AND active = 0'; +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +mysql --defaults-file=$SQLCONFFILE -h localhost -e 'delete from servatrice.cockatrice_users where registrationDate < DATE_SUB(now(), INTERVAL 5 DAY) AND active = 0'; diff --git a/servatrice/scripts/maint_replays b/servatrice/scripts/maint_replays index 1ce1b400..22f6c097 100644 --- a/servatrice/scripts/maint_replays +++ b/servatrice/scripts/maint_replays @@ -1,3 +1,4 @@ #!/bin/bash # SCHEDULE WITH CRONTAB BASED ON TIME PERIOD REPLAYS SHOULD BE SAVED UNTIL (EX: SCHEDULE ONCE A WEEK TO KEEP A WEEKS WORTH OF REPLAYS IN THE DB) -mysql --defaults-file=./mysql.cnf -h localhost -e 'truncate table servatrice.cockatrice_replays;truncate table servatrice.cockatrice_replays_access' +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +mysql --defaults-file=$SQLCONFFILE -h localhost -e 'truncate table servatrice.cockatrice_replays;truncate table servatrice.cockatrice_replays_access' diff --git a/servatrice/scripts/maint_sessions b/servatrice/scripts/maint_sessions index 2c41da6d..69e531ce 100644 --- a/servatrice/scripts/maint_sessions +++ b/servatrice/scripts/maint_sessions @@ -1,3 +1,4 @@ #!/bin/bash # SCHEDULE WITH CRONTAB TO RUN ONCE A MONTH -mysql --defaults-file=./mysql.cnf -h localhost -e "delete from servatrice.cockatrice_sessions where start_time < DATE_SUB(now(), INTERVAL 1 MONTH)" +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +mysql --defaults-file=$SQLCONFFILE -h localhost -e "delete from servatrice.cockatrice_sessions where start_time < DATE_SUB(now(), INTERVAL 1 MONTH)" diff --git a/servatrice/scripts/setup_addfirstadmin b/servatrice/scripts/setup_addfirstadmin index 91731559..17c2d881 100644 --- a/servatrice/scripts/setup_addfirstadmin +++ b/servatrice/scripts/setup_addfirstadmin @@ -1,3 +1,4 @@ #!/bin/bash # SCRIPT TO ADD THE FIRST ADMIN USER NAMED SERVATRICE WITH THE PASSWORD OF PASSWORD -mysql --defaults-file=./mysql.cnf -h localhost -e "insert into servatrice.cockatrice_users (admin,name,password_sha512,active) values (1,'servatrice','jbB4kSWDmjaVzMNdU13n73SpdBCJTCJ/JYm5ZBZvfxlzbISbXir+e/aSvMz86KzOoaBfidxO0s6GVd8t00qC0TNPl+udHfECaF7MsA==',1);" +SQLCONFFILE="./mysql.cnf" #set this to the path that contains the mysql.cnf file +mysql --defaults-file=$SQLCONFFILE -h localhost -e "insert into servatrice.cockatrice_users (admin,name,password_sha512,active) values (1,'servatrice','jbB4kSWDmjaVzMNdU13n73SpdBCJTCJ/JYm5ZBZvfxlzbISbXir+e/aSvMz86KzOoaBfidxO0s6GVd8t00qC0TNPl+udHfECaF7MsA==',1);"