#!/bin/bash

echo "SERVER BACKUP"
echo "SERVER NAME:"
read n
echo "DATE CODE:"
read d
echo "BACKING UP SERVER..."
echo "DUMPING SQL FILES..."
mkdir dbs
sudo mysql -N -e 'show databases' | while read dbname; do sudo mysqldump --complete-insert --routines --triggers --single-transaction "$dbname" | gzip > "./dbs/$dbname.sql.gz"; done
echo "FINISHED DUMPING SQL FILES."
echo "COMPRESSING FILES TO 7Z ACHIVES..."
7z a $n-$d-sql.7z ./dbs/*
sudo 7z a $n-$d-www.7z /var/www/html/*
sudo 7z a $n-$d-etc.7z /etc/apache2/
sudo 7z a $n-$d-etc.7z /etc/mysql/
sudo 7z a $n-$d-etc.7z /etc/php/
sudo 7z a $n-$d-etc.7z /etc/phpmyadmin/
sudo 7z a $n-$d-etc.7z /etc/ufw/
sudo 7z a $n-$d-etc.7z /etc/fail2ban/
sudo 7z a $n-$d-etc.7z /etc/portsentry/
sudo 7z a $n-$d-etc.7z /etc/snort/
sudo 7z a $n-$d-etc.7z /etc/suricata/
sudo 7z a $n-$d-etc.7z /etc/dnsmasq.d/
sudo 7z a $n-$d-etc.7z /etc/hosts
sudo 7z a $n-$d-etc.7z /etc/mumble-server.ini
sudo 7z a $n-$d-etc-ejabberd.7z /etc/ejabberd/
sudo 7z a $n-$d-opt-ejabberd.7z /opt/ejabberd/
sudo 7z a $n-$d-var-lib-ejabberd.7z /var/lib/ejabberd/
sudo 7z a $n-$d-ejabberd.7z $n-$d-etc-ejabberd.7z $n-$d-opt-ejabberd.7z $n-$d-var-lib-ejabberd.7z
sudo 7z a $n-$d.7z $n-$d-www.7z $n-$d-sql.7z $n-$d-etc.7z $n-$d-ejabberd.7z
echo "FINISHED COMPRESSING FILES TO 7Z ARCHIVES."
echo "MOVING FILES..."
sudo mkdir /var/www/html/-bkp/
sudo mv $n-$d.7z /var/www/html/-bkp/
echo "FINSISHED MOVING FILES."
echo "CLEANING UP..."
sudo chown www-data:www-data /var/www/html/-bkp/
sudo chown www-data:www-data /var/www/html/-bkp/*
rm -r dbs
sudo rm $n-$d-www.7z $n-$d-sql.7z $n-$d-etc.7z $n-$d-ejabberd.7z $n-$d-etc-ejabberd.7z $n-$d-opt-ejabberd.7z $n-$d-var-lib-ejabberd.7z
echo "SERVER BACKUP FINISHED."
