#!/bin/bash

clear
d=$(date +%Y%m%d)
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 --add-drop-database --complete-insert --routines --triggers --single-transaction "$dbname" | gzip > "./dbs/$dbname.sql.gz"; done
sudo mysqldump --all-databases --add-drop-database --complete-insert --routines --triggers --single-transaction | gzip > "$n-$d.sql.gz" | progress -m
echo "FINISHED DUMPING SQL FILES."
echo "COMPRESSING FILES TO 7Z ACHIVES..."
#sudo 7z a $n-$d-sql.7z ./dbs/*
sudo 7z a $n-$d-sql.7z $n-$d.sql.gz
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/cockpit/ 
sudo 7z a $n-$d-etc.7z /etc/letsencrypt/ 
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-var-snap.7z /var/snap/gitea/
sudo 7z a $n-$d.7z $n-$d-www.7z $n-$d-sql.7z $n-$d-etc.7z $n-$d-ejabberd.7z $n-$d-var-snap.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 -R www-data:www-data /var/www/html/-bkp/*
#rm -rf dbs
sudo rm -rf $n-$d-www.7z $n-$d.sql.gz $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 $n-$d-var-snap.7z
echo "SERVER BACKUP FINISHED."
