#!/bin/bash
# Error handling
function error()
{
echo -e "[ `date` ] $(tput setaf 1)$@$(tput sgr0)"
exit $2
}
### Set Bins Path ###
RM=/bin/rm
GZIP=/bin/gzip
GREP=/bin/grep
MKDIR=/bin/mkdir
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
MYSQLADMIN=/usr/bin/mysqladmin
### Enable Log = 1 ###
LOGS=1
### Default Time Format ###
TIME_FORMAT='%d%b%Y%H%M%S'
### Setup Dump And Log Directory ###
MYSQLDUMPPATH=/var/www/mysqldump
MYSQLDUMPLOG=/var/log/mysqldump.log
EXTRA_PARAMS=$1
#####################################
### ----[ No Editing below ]------###
#####################################
[ -f ~/.my.cnf ] || error "Error: ~/.my.cnf not found"
### Make Sure Bins Exists ###
verify_bins(){
[ ! -x $GZIP ] && error "File $GZIP does not exists. Make sure correct path is set in $0."
[ ! -x $MYSQL ] && error "File $MYSQL does not exists. Make sure correct path is set in $0."
[ ! -x $MYSQLDUMP ] && error "File $MYSQLDUMP does not exists. Make sure correct path is set in $0."
[ ! -x $RM ] && error "File $RM does not exists. Make sure correct path is set in $0."
[ ! -x $MKDIR ] && error "File $MKDIR does not exists. Make sure correct path is set in $0."
[ ! -x $MYSQLADMIN ] && error "File $MYSQLADMIN does not exists. Make sure correct path is set in $0."
[ ! -x $GREP ] && error "File $GREP does not exists. Make sure correct path is set in $0."
}
### Make Sure We Can Connect To The Server ###
verify_mysql_connection(){
$MYSQLADMIN ping | $GREP 'alive' > /dev/null
[ $? -eq 0 ] || error "Error: Cannot connect to MySQL Server. Make sure username and password are set correctly in $0"
}
### Make A Backup ###
backup_mysql_rsnapshot
backup_mysql_rsnapshot(){
local DBS="$($MYSQL -Bse 'show databases')"
local db="";
[ ! -d $MYSQLDUMPLOG ] && $MKDIR -p $MYSQLDUMPLOG
[ ! -d $MYSQLDUMPPATH ] && $MKDIR -p $MYSQLDUMPPATH
$RM -f $MYSQLDUMPPATH/* > /dev/null 2>&1
[ $LOGS -eq 1 ] && echo "" &>> $MYSQLDUMPLOG/rsnap-mysql.log
[ $LOGS -eq 1 ] && echo "*** Dumping MySQL Database At $(date) ***" &>> $MYSQLDUMPLOG/rsnap-mysql.log
[ $LOGS -eq 1 ] && echo "Database >> " &>> $MYSQLDUMPLOG/rsnap-mysql.log
for db in $DBS
do
local TIME=$(date +"$TIME_FORMAT")
local FILE="$MYSQLDUMPPATH/$db.$TIME.gz"
[ $LOGS -eq 1 ] && echo -e \\t "$db" &>> $MYSQLDUMPLOG/rsnap-mysql.log
if [ $db = "mysql" ]
then
$MYSQLDUMP --events --single-transaction $EXTRA_PARAMS $db | $GZIP -9 > $FILE || echo -e \\t \\t "MySQLDump Failed $db"
else
$MYSQLDUMP --single-transaction $db $EXTRA_PARAMS | $GZIP -9 > $FILE || echo -e \\t \\t "MySQLDump Failed $db"
fi
done
[ $LOGS -eq 1 ] && echo "*** Backup Finished At $(date) [ files wrote to $MYSQLDUMPPATH] ***" &>> $MYSQLDUMPLOG/rsnap-mysql.log
}
### Main ####
verify_bins
verify_mysql_connection
Goal: In this module, you will get an understanding of NoSQL databases, design goals, requirement of NoSQL database/ MongoDB, MongoDB® architecture and introduction to JSON and BSON among others. This module will also cover the installation of MongoDB® and associated tools. Skills Understand NoSQL databases and advantages Install MongoDB on Windows and Linux platform Security Enable and high availability Objectives After completing this module, you will be able knowledge ed on SQL and noSQL Database usages and difference between these MongoDB design and architecture MongoDB GUI tools Describe JSON and BSON Install MongoDB on Windows, Linux, MAC OS etc. Setup MongoDB environment Topics • Understanding the basic concepts of a Database • Database categories: What is NoSQL? Why NoSQL? Benefit over RDBMS • Types of NoSQL Database, and NoSQL vs. SQL Comparison, ACID & Base Property • CAP Theorem, implementing NoSQL and what is MongoDB? • O...
Comments
Post a Comment