SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
dt=`date +%Y-%m-%d`
#mkdir /var/www/html/backup/womcms_${dt}
#cp -r /var/www/html/womcms /var/www/html/backup/womcms_${dt}
mkdir /var/backup/womall_${dt}
cp -r /var/www/html /var/backup/womall_${dt}
==================================
# Redmine Full backup 3pm and 9pm
0 15 * * * zip -r /home/backup_redmine/redmine_$(date +\%d-\%m-\%Y_\%H:\%M:\%S).zip /var/www/redmine
0 21 * * * zip -r /home/backup_redmine/redmine_$(date +\%d-\%m-\%Y_\%H:\%M:\%S).zip /var/www/redmine
* * * * 6 find /home/backup_redmine/ -mtime +5 -exec rm {} \;
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches
===========================
[root@ip-172-31-9-134 web]# pwd
/opt/backup/web
[root@ip-172-31-9-134 web]# cat log-rotate.sh
#!/bin/sh
#############################################################
# File: folder-backup.sh
# Description: A shell script to backup Multiple FOLDERs
# Cron Example: 0 2 * * * sh /path/to/direbackup.sh
#############################################################
# a. create a folder /opt/backup/web b. check DISKFREE parameter c. --exclude option in tar
####DEFINE THESE#############################################
FOLDERLIST="/var/log/messages";
DUMPBASEDIR="/opt/backup/web";
SCPTOREMOTE=0;
####END CHANGE HERE###########################################
DATE=`/bin/date +%d-%b-%Y_%k:%M`;
DUMPDIR="$DUMPBASEDIR/$DATE";
if [ ! -d $DUMPDIR ];
then
echo "Creating Directory: ".$DUMPDIR;
mkdir $DUMPDIR;
fi
for FOLDER in $FOLDERLIST
do
echo "FOLDER $FOLDER Backup Started";
WOBFOLDER=${FOLDER/#\//}
tar -czf $DUMPBASEDIR/$DATE/${WOBFOLDER//\//-}.tar.gz $FOLDER
echo "FOLDER $FOLDER Backup Completed";
done
cat /dev/null > /var/log/messages
exit;
[root@ip-172-31-9-134 web]# crontab -l
#0 0 * * * /bin/bash /opt/backup/web/folder-bak.sh >> /opt/backup/web/folder-bak.log
1 1,3,5,7,9,11,13,15,17,19,21,23 * * * /opt/backup/web/log-rotate.sh >> /opt/backup/web/log-rotate.log
========================================
[root@ip-172-31-3-161 backup]# pwd
/opt/backup
[root@ip-172-31-3-161 backup]# cat mysql-bak-rotation-weekly.sh
#!/bin/sh
#############################################################
# File: dbbackup.sh
# Description: A shell script to backup all mysql databases
# Cron Example: 0 2 * * * sh /path/to/dbbackup.sh
#############################################################
####DEFINE THESE#############################################
USER="root"
PASSWORD=`cat /opt/backup/password`
SCPTOREMOTE=0;
REMOTESERVER="192.168.0.0";
REMOTEDIR="/backup";
DUMPBASEDIR="/opt/backup";
####END CHANGE HERE###########################################
MYSQLDUMP=`which mysqldump`
MYSQL=`which mysql`
LOOK=`which find`
DATE=`/bin/date +%d-%b-%Y`;
DELDIR=`/bin/date -d "-7 day" +%d-%b-%Y`;
DUMPDIR="$DUMPBASEDIR/$DATE";
DISKFREE=`df -h | grep -v Filesystem|grep '/dev/xvda1' | awk '{print $5}'| sed 's/%//g'`
if [ $DISKFREE -le "75" ]
then
echo "Free Space on Drive...Starting Backups"
if [ ! -d $DUMPDIR ];
then
echo "Creating Directory: ".$DUMPDIR;
mkdir $DUMPDIR;
fi
# get a list of databases
databases=`$MYSQL --user=$USER --password=$PASSWORD \
-e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
# dump each database in turn
for db in $databases; do
echo "Database $db Backup Started";
$MYSQLDUMP --single-transaction --events --force --opt --user=$USER --password=$PASSWORD \
--databases $db > "$DUMPDIR/$db.bak"
echo "Database $db Backup Completed";
done
#################################################################
tar -cvzf $DUMPBASEDIR/$DATE.tar.gz $DUMPBASEDIR/$DATE
rm -rf $DUMPBASEDIR/$DATE
mkdir -p $DUMPBASEDIR/$DATE
mv $DUMPBASEDIR/$DATE.tar.gz $DUMPBASEDIR/$DATE/
#################################################################
if [ $SCPTOREMOTE -eq "1" ]
then
echo "Backing up data to remote server";
scp -r $DUMPDIR $REMOTESERVER:$REMOTEDIR
fi
echo "Done";
if [ ! -d $DELDIR ];
then
echo "No directory with name: $DELDIR"
echo "exiting....."
exit 1;
else
echo "Deleting Backup Of Date : $DELDIR"
$LOOK $DUMPBASEDIR -type d -name $DELDIR -mtime +7 -exec rm -rf {} \; 2>/dev/null
#find /opt/backup/ -iname "$(date +%A)*.tar.gz" -mtime +7 -exec rm -rf {} \;
echo "Backup Deleted Successfully...!"
exit 0;
fi
fi
exit;
============================
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
dt=`date +%Y-%m-%d`
#mkdir /var/www/html/backup/womcms_${dt}
#cp -r /var/www/html/womcms /var/www/html/backup/womcms_${dt}
mkdir /var/backup/womall_${dt}
cp -r /var/www/html /var/backup/womall_${dt}
==================================
# Redmine Full backup 3pm and 9pm
0 15 * * * zip -r /home/backup_redmine/redmine_$(date +\%d-\%m-\%Y_\%H:\%M:\%S).zip /var/www/redmine
0 21 * * * zip -r /home/backup_redmine/redmine_$(date +\%d-\%m-\%Y_\%H:\%M:\%S).zip /var/www/redmine
* * * * 6 find /home/backup_redmine/ -mtime +5 -exec rm {} \;
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches
===========================
[root@ip-172-31-9-134 web]# pwd
/opt/backup/web
[root@ip-172-31-9-134 web]# cat log-rotate.sh
#!/bin/sh
#############################################################
# File: folder-backup.sh
# Description: A shell script to backup Multiple FOLDERs
# Cron Example: 0 2 * * * sh /path/to/direbackup.sh
#############################################################
# a. create a folder /opt/backup/web b. check DISKFREE parameter c. --exclude option in tar
####DEFINE THESE#############################################
FOLDERLIST="/var/log/messages";
DUMPBASEDIR="/opt/backup/web";
SCPTOREMOTE=0;
####END CHANGE HERE###########################################
DATE=`/bin/date +%d-%b-%Y_%k:%M`;
DUMPDIR="$DUMPBASEDIR/$DATE";
if [ ! -d $DUMPDIR ];
then
echo "Creating Directory: ".$DUMPDIR;
mkdir $DUMPDIR;
fi
for FOLDER in $FOLDERLIST
do
echo "FOLDER $FOLDER Backup Started";
WOBFOLDER=${FOLDER/#\//}
tar -czf $DUMPBASEDIR/$DATE/${WOBFOLDER//\//-}.tar.gz $FOLDER
echo "FOLDER $FOLDER Backup Completed";
done
cat /dev/null > /var/log/messages
exit;
[root@ip-172-31-9-134 web]# crontab -l
#0 0 * * * /bin/bash /opt/backup/web/folder-bak.sh >> /opt/backup/web/folder-bak.log
1 1,3,5,7,9,11,13,15,17,19,21,23 * * * /opt/backup/web/log-rotate.sh >> /opt/backup/web/log-rotate.log
========================================
[root@ip-172-31-3-161 backup]# pwd
/opt/backup
[root@ip-172-31-3-161 backup]# cat mysql-bak-rotation-weekly.sh
#!/bin/sh
#############################################################
# File: dbbackup.sh
# Description: A shell script to backup all mysql databases
# Cron Example: 0 2 * * * sh /path/to/dbbackup.sh
#############################################################
####DEFINE THESE#############################################
USER="root"
PASSWORD=`cat /opt/backup/password`
SCPTOREMOTE=0;
REMOTESERVER="192.168.0.0";
REMOTEDIR="/backup";
DUMPBASEDIR="/opt/backup";
####END CHANGE HERE###########################################
MYSQLDUMP=`which mysqldump`
MYSQL=`which mysql`
LOOK=`which find`
DATE=`/bin/date +%d-%b-%Y`;
DELDIR=`/bin/date -d "-7 day" +%d-%b-%Y`;
DUMPDIR="$DUMPBASEDIR/$DATE";
DISKFREE=`df -h | grep -v Filesystem|grep '/dev/xvda1' | awk '{print $5}'| sed 's/%//g'`
if [ $DISKFREE -le "75" ]
then
echo "Free Space on Drive...Starting Backups"
if [ ! -d $DUMPDIR ];
then
echo "Creating Directory: ".$DUMPDIR;
mkdir $DUMPDIR;
fi
# get a list of databases
databases=`$MYSQL --user=$USER --password=$PASSWORD \
-e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
# dump each database in turn
for db in $databases; do
echo "Database $db Backup Started";
$MYSQLDUMP --single-transaction --events --force --opt --user=$USER --password=$PASSWORD \
--databases $db > "$DUMPDIR/$db.bak"
echo "Database $db Backup Completed";
done
#################################################################
tar -cvzf $DUMPBASEDIR/$DATE.tar.gz $DUMPBASEDIR/$DATE
rm -rf $DUMPBASEDIR/$DATE
mkdir -p $DUMPBASEDIR/$DATE
mv $DUMPBASEDIR/$DATE.tar.gz $DUMPBASEDIR/$DATE/
#################################################################
if [ $SCPTOREMOTE -eq "1" ]
then
echo "Backing up data to remote server";
scp -r $DUMPDIR $REMOTESERVER:$REMOTEDIR
fi
echo "Done";
if [ ! -d $DELDIR ];
then
echo "No directory with name: $DELDIR"
echo "exiting....."
exit 1;
else
echo "Deleting Backup Of Date : $DELDIR"
$LOOK $DUMPBASEDIR -type d -name $DELDIR -mtime +7 -exec rm -rf {} \; 2>/dev/null
#find /opt/backup/ -iname "$(date +%A)*.tar.gz" -mtime +7 -exec rm -rf {} \;
echo "Backup Deleted Successfully...!"
exit 0;
fi
fi
exit;
============================