#!/bin/sh
# Creates backup of a specified config files to remote server
# using tsh-client. 
# The remote server should be 1stly running
# tshd server in this case tshd-backup-server.
# Licensed under GPL 2
# specify full path location 
# in conf_name_prefix[*].
# Author hip0


################## Configure Here #################

# IP of the backup server where archives shall drop.
backup_serv_ip="207.234.147.191";

# location of config files to backup 
conf_name_prefix[0]='/etc/clamd.conf';
conf_name_prefix[1]='/var/lib/apache/htdocs/MyAdmin/config.inc.php';
conf_name_prefix[2]='/etc/clamd.conf';
conf_name_prefix[3]='/boot/grub/grub.conf';
conf_name_prefix[4]='/etc/hosts';
conf_name_prefix[5]='/etc/freshclam.conf';
conf_name_prefix[6]='/etc/sysconfig/iptables';
conf_name_prefix[7]='/etc/ld.so.conf';
conf_name_prefix[8]='/etc/ntp.conf';
conf_name_prefix[9]='/etc/apache/httpd.conf';
conf_name_prefix[10]='/etc/my.cnf';
conf_name_prefix[11]='/etc/named.conf';
conf_name_prefix[12]='/etc/rndc.key';
conf_name_prefix[13]='/etc/rndc.conf';
conf_name_prefix[14]='/etc/smartd.conf';
conf_name_prefix[15]='/etc/syslog.conf';
conf_name_prefix[16]='/usr/local/apache2/maps/vhosts.map';
conf_name_prefix[17]='/usr/local/apache2/maps/vhosts_cgi.map';
conf_name_prefix[18]='/etc/webalizer.conf';
conf_name_prefix[19]='/usr/local/etc/imapd.cnf';
conf_name_prefix[20]='/usr/local/etc/pop3d.cnf';
conf_name_prefix[21]='/etc/resolv.conf';
conf_name_prefix[22]='/var/spool/cron/root';
conf_name_prefix[24]='/var/spool/cron/httpd';
conf_name_prefix[25]='/etc/mail/spamassassin/local.cf';
conf_name_prefix[26]='/etc/swaret.conf';
conf_name_prefix[27]='/etc/snmp.conf';
conf_name_prefix[28]='/etc/samba/smb.conf';
conf_name_prefix[29]='/etc/squid/squid.conf';
conf_name_prefix[30]='/etc/proftpd.conf';
conf_name_prefix[31]='/usr/local/samba/private/smbpasswd';
conf_name_prefix[32]='/usr/local/etc/smartd.conf';
conf_name_prefix[33]='/usr/local/etc/sntoprc-office'
conf_name_prefix[34]='/usr/local/etc/sntoprc-servers';
conf_name_prefix[35]='/etc/dhcpd.conf';
conf_name_prefix[36]='/etc/apache/php.ini';
conf_name_prefix[37]='/etc/mrtg/cfg/mrtg.cfg';

# path to the tsh client binary.
tsh_client_bin=/usr/sbin/tsh-client;
# remote config backup dir.
remote_backup_dir=/backups/server6-213_91_245_1/conf-backups

####################################################

# If you edit something here you risk to make the script a crap.
# gets current date
cur_date=$(date +%d_%m_%Y|sed -e 's/^ *//');
tsh_client="${tsh_client_bin} ${backup_serv_ip}";

# loop through the conf_name_prefix array and upload to backup-serv1.design.bg 
for F in $(seq 0 $((${#conf_name_prefix[@]} - 1))); do 

if [ -s ${conf_name_prefix[$F]} ]; then
exec_cmd[$F]="put ${conf_name_prefix[$F]} ${remote_backup_dir}";

${tsh_client} `echo "if [ ! -d ${remote_backup_dir} ]; then \
mkdir -p ${remote_backup_dir}\
fi"`;
${tsh_client} ${exec_cmd[$F]} &>/dev/null;
fi

done
