Showing posts with label Shell_Scripts. Show all posts
Showing posts with label Shell_Scripts. Show all posts

Saturday, 5 December 2015

Shell Script For Take Backup of Mysql Databases


Shell Script For Take Backup of Mysql Databases


Step 1: Create Directory For Backups Scripts & Backups

# mkdir -p /backups/db_backup /backups/scripts

Step 2: Create Backups Scripts

# vi /backups/scripts/db_backups.sh

#!/bin/bash
export path1=/backups/db_backup  ### Backup Path
date1=`date +%y%m%d_%H%M%S`
/usr/bin/find /backups/db_backup/* -type d -mtime +14 -exec rm -r {} \; 2> /dev/null  ### Retention For Backups of 15 Days
cd $path1/
mkdir $date1
USER="root"  ## Mysql User Name
PASSWORD="redhat"  ## Mysql User's Password
OUTPUTDIR="$path1/$date1"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"
HOST="localhost"
databases=`$MYSQL --user=$USER --password=$PASSWORD --host=$HOST \
-e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
echo "` for db in $databases; do
   echo $db

       if [ "$db" = "performance_schema" ] ; then
       $MYSQLDUMP --force --opt --single-transaction --lock-tables=false --skip-events --user=$USER --password=$PASSWORD --host=$HOST --routines \
        --databases $db | gzip > "$OUTPUTDIR/$db.gz"
        else

$MYSQLDUMP --force --opt --single-transaction --lock-tables=false --events --user=$USER --password=$PASSWORD --host=$HOST --routines \
   --databases $db | gzip > "$OUTPUTDIR/$db.gz"
fi
done `"
/root/monitor.sh 99 | tee /root/backup_report >> /root/monthly_backup_report #to create a backup report in /root/backup_report file
cat /root/backup_report | mail -s "backup_report of Test Server (192.168.72.240) "  -r root@Test_Server deb.mind009@gmail.com  ### Mail the Backup Report But Need Monitoring Script for this Feature

--- save and quit (:wq) ---

Step 3: Schedule Backup Scripts on Crontab

## Then Schedule the script to Crontab for Run it As per a schedule, Here we are scheduling it Daily Basis at 12:00 AM

# crontab -e

0 0 * * * /backups/scripts/db_backups.sh > /dev/null

--- save and quit (:wq) ---

# crontab -l (To see the Scheduled Crontab List)

Thanks For Visiting on My Blog, For More Tutorials Keep Visiting My Blog.

Shell Script For Take Backup of Web Files on Centos/RHEL

Shell Script For Take Backup of Web Files on Centos/RHEL

Step 1: Create Directory For Backup Scripts and Backups

# mkdir -p /backups/web_backup /backups/scripts

Step 2: Create Backups Backup Script

# vi /backups/scripts/web_backups.sh

#!/bin/bash
export path1=/backups/web_backup ### Backup Path
date1=`date +%y%m%d_%H%M%S`

/usr/bin/find /backups/web_backup/* -type d -mtime +6 -exec rm -r {} \; 2> /dev/null
mkdir $path1/$date1  ### Retention For Backups of 7 Days
cp -r /var/www/html $path1/
cd $path1/html
for i in */; do /bin/tar -zcvf "$path1/$date1/${i%/}.tar.gz" "$i"; done
if [ $? -eq 0 ] ; then
rm -r $path1/html
fi

if [ `date +%d` -eq '01' ] ; then
mv /home/som/monthly_backup_report /root/Test_192.168.72.240_Backup_Report_`date +%B_%G --date="-1 day"`
fi

/root/monitor.sh 99 | tee /root/backup_report >> /root/monthly_backup_report ### to create a backup report in /root/backup_report file
cat /root/backup_report | mail -s "backup_report of Test Server (192.168.72.240)" deb.mind009@gmail.com ### Mail the Backup Report But Need Monitoring Script for this Feature

--- save and quit (:wq) ---

Step 3: Schedule The Script on Crontab

## Then Schedule the script to Crontab for Run it As per a schedule, Here we are scheduling it Daily Basis at 12:00 AM

# crontab -e

0 0 * * * /backups/scripts/web_backups.sh > /dev/null

--- save and quit (:wq) ---

# crontab -l (To see the Scheduled Crontab List)

Thanks For Visiting on My Blog, For More Tutorials Keep Visiting My Blog.