Rsync Script based on properties file configuration

rsync_data_args.sh

#!/bin/bash
  
USER_NAME=$1
HOST_NAME=$2
SOURCE_PATH=$3
DESTINATION_PATH=$4

set -x
rsync -avz $SOURCE_PATH $DESTINATION_PATH $USER_NAME@$HOST_NAME:$DESTINATION_PATH
set +x

rsync_config.properties

#SYNC_TYPE=USER_NAME=HOSTNAME=SOURCE/PATH/=DESTINATION/PATH/
TEST_SYNC=USER_NAME=HOSTNAME=SOURCE/PATH/=DESTINATION/PATH/

rsync_execution.sh

#!/bin/bash
  
BASE_DIR=/apps/rsync_script
CONFIG_FILE=$BASE_DIR/rsync_config.properties
LOG_FILE=$BASE_DIR/rsync_log-`date +\%y_\%m_\%d`.log
SYNC_TYPE=$1

echo -e "\n\n===================EXECUTING rsync for $SYNC_TYPE on `date`=======================================" &>> $LOG_FILE

if [ -z $SYNC_TYPE ]; then
        echo "Please provide a correct sync type as an argument" &>> $LOG_FILE
        exit 1
fi

CONFIG=$(grep -w ^$SYNC_TYPE $CONFIG_FILE)
if [ -z $CONFIG ]; then
        echo Incorrect SYNC Type provided $SYNC_TYPE &>> $LOG_FILE
        echo Kindly refer $CONFIG_FILE to correct the SYNC type &>> $LOG_FILE
        exit 1
fi

#echo $CONFIG

USER_NAME=$(echo $CONFIG | awk -F'=' '{print $2}')
HOST_NAME=$(echo $CONFIG | awk -F'=' '{print $3}')
SOURCE_PATH=$(echo $CONFIG | awk -F'=' '{print $4}')
DESTINATIOn_PATH=$(echo $CONFIG | awk -F'=' '{print $5}')

$BASE_DIR/rsync_data_args.sh $USER_NAME $HOST_NAME $SOURCE_PATH $DESTINATIOn_PATH &>> $LOG_FILE                   

Execute the Script :

./rsync_execution.sh TEST_SYNC

Leave a Comment