configure_backup/rsync/rsyncclient.sh

77 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
##################################################################
# NAME
# rsyncclient.sh ---- running in client machine, which
# is used to backup data in client machine
#
# USAGE
# ./rsyncclient.sh
#
# AUTHOR
# Aborn Jiang (aborn.jiang@gmail.com)
#
# NOTE
# pls configure the file client.conf and rsyncd.scrt
#
##################################################################
ABSPATH=$(dirname $0)
source ${ABSPATH}/client.conf
function get-user-pwd()
{
# obtain usrname and password
iUSR=$(cat ${ABSPATH}/rsyncd.scrt|tr -d ' ' |grep -v "^$" | \
grep -v "^#"|head -n 1|awk -F : '{print $1}')
iPWD=$(cat ${ABSPATH}/rsyncd.scrt|tr -d ' ' |grep -v "^$" | \
grep -v "^#"|head -n 1|awk -F : '{print $2}')
if [ -z ${iUSR} ] || [ -z ${iPWD} ];then
echo "iUSR=$iUSR iPWD=$iPWD"
echo "rsyncd.scrt format illegal, please check!";
exit -1;
fi
# produce password file
echo "$iPWD" > ${ABSPATH}/.pass
chmod 600 ${ABSPATH}/.pass
[ ! -d $BACKUPPATH ] && mkdir -p ${BACKUPPATH}
}
function backup-module()
{
# print key information
iModule=$1
echo
echo "---------------------------------------------------"
echo "---- backup module ${iModule}@${SERVERIP} begin "
echo "---- TIME=`date`----"
echo "ABSPATH=${ABSPATH}"
echo "BACKUPPATH=${BACKUPPATH}"
echo "iUSR=$iUSR iPWD=$iPWD"
echo "OPTIONS=${OPTIONS}"
iModuleBackpath=${BACKUPPATH}/${iModule};
[ ! -d ${iModuleBackpath} ] && mkdir -p ${iModuleBackpath}
# begin backup
rsync ${OPTIONS} ${iUSR}@${SERVERIP}::${iModule} ${iModuleBackpath} \
--password-file=${ABSPATH}/.pass
if [ $? != 0 ];then
echo "---- backup module ${iModule}@${SERVERIP} failed."
else
echo "---- backup module ${iModule}@${SERVERIP} succuess. "
fi
echo "---- TIME=`date`----"
echo "---------------------------------------------------"
echo
}
function __main__()
{
get-user-pwd
for md in $MODULE
do
backup-module $md
done
}
__main__