#!/bin/sh
# requires tsh-client compiled and setupped gets backups from tsh server
# running on the backup host
# Licensed Under GPL 2.0  

BACKUP_SERV_IP='207.234.147.191';
PARENT_DIR=/backups;
# server mysqldumps backup locations
# all dumps location.
BACKUPS_DOCROOT=/backups/

server[0]=/backups/server0-194_153_145_232/mysqlbackups;
server[1]=/backups/server1-207_36_180_30/mysqlbackups;
server[2]=/backups/server2-207_36_180_31/mysqlbackups;
server[3]=/backups/server3-207_36_180_32/mysqlbackups;
server[4]=/backups/server4-207_234_147_191/mysqlbackups;
server[5]=/backups/server5-207_234_208_208/mysqlbackups;
server[6]=/backups/server6-213_91_245_1/mysqlbackups;

servers_cnt="${#server[*]}";

# server names.

server_name[0]=design-bg_net;
server_name[1]=imot_biz;
server_name[2]=design_bg;
server_name[3]=bgtravel;
server_name[4]=fresh-ringtones;
server_name[5]=fresh-up;
server_name[6]=efflab;

# counts the array count.
server_name_arr_cnt="${#server_name[*]}";

# path to the tsh client binary.
TSH_CLIENT_BIN=/usr/sbin/tsh-client;
# tsh cmd to execute.
EXEC_CMD="get";
# get backups containing previous date. 
H=1;
M=$(date +%m);
if [ $(date +%d) != 0 ]; then D=$((($(date +%d) - 1))); fi
Y=$(date +%Y);

BACKUP_FILE_NAME=`echo ${D}_${M}_${Y}|sed -e 's/^ *//'`.bz2;
# If you edit something here you risk to make the script a crap.
TSH_CLIENT_BIN="${TSH_CLIENT_BIN} ${BACKUP_SERV_IP}";

# checks for some critical dir existence.
chk_dir_existence () {

if [ ! -d "${BACKUPS_DOCROOT}" ]; then
  echo -e "${BACKUPS_DOCROOT} Does not Exist ...";
create_dirs;
fi

for f in `seq 0 $server_name_arr_cnt`; do

 if [ ! -d ${server[$f]} ]; then
  echo "${server[$f]} Does not Exist ...";
create_dirs;
 fi

done

}

# create dirs if they didn't exist
create_dirs () {
n=0;
for i in $(seq 1 $servers_cnt); do
mkdir -p ${server[$n]};
((n++));
done 

}


# download .bz2 archives func.
download_sqls () {
f=0;
for i in $(seq 1 $server_name_arr_cnt); do
#echo "cd ${server[$f]}";
echo "${TSH_CLIENT_BIN} $EXEC_CMD ${server[$f]}/${server_name[$f]}_last.bz2 ${server[$f]}" &>/dev/null;
${TSH_CLIENT_BIN} $EXEC_CMD ${server[$f]}/${server_name[$f]}_last.bz2 ${server[$f]} &>/dev/null
mv ${server[$f]}/${server_name[$f]}_last.bz2 ${server[$f]}/${server_name[$f]}-${BACKUP_FILE_NAME};
((f++));
done
}

prepare_for_burn () {
mv ${PARENT_DIR} mysq-${PARENT_DIR}_$(date +%d_%m_%Y) >/dev/null> 2>&1;
exit 0;
}


main () {

chk_dir_existence;
download_sqls;
prepare_for_burn;

}
main;
