Saturday, 27 February 2016

Bash script to backup multiple folders in linux

#!/bin/sh

#############################################################
# File:         folder-backup.sh
# Description:  A shell script to backup Multiple FOLDERs
# Cron Example: 0 2 * * * sh /path/to/direbackup.sh
#############################################################

####DEFINE THESE#############################################
FOLDERLIST="/var/www/html /etc";
DUMPBASEDIR="/opt/backup";
SCPTOREMOTE=0;
REMOTESERVER="192.168.0.0";
REMOTEBASEDIR="/backup/server1";
####END CHANGE HERE###########################################

DATE=`/bin/date "+%Y-%b-%d"`;
DUMPDIR="$DUMPBASEDIR/$DATE";
REMOTEDIR="$REMOTEBASEDIR/$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 $DUMPDIR/${WOBFOLDER//\//-}.tar.gz $FOLDER
        echo "FOLDER $FOLDER Backup Completed";
done

if [ $SCPTOREMOTE -eq "1" ]
then
        echo "Backing up data to remote server";
        scp -r $DUMPDIR $REMOTEUSER@$REMOTESERVER:$REMOTEDIR
#    rsync -avz -e 'ssh -i $REMOTESERVERKEY' $DUMPDIR $REMOTEUSER@$REMOTESERVER:$REMOTEDIR
fi
echo "Done";
exit;

No comments: