Backup-System/BACKUP/BACKUP.SH

87 lines
3.0 KiB
Bash

#!/bin/bash
# Primary backup script containing incremental backup commands.
# More comments will be added in the future.
# Backup Script
version="v0.1.0-a.1"
# Add "-a" flag between "--bwlimit=1000" and "--backup" for async (higher CPU usage).
# Color-Coding
white='\e[0;37m'
green='\e[0;32m'
yellow='\e[0;33m'
red='\e[0;31m'
echo -e "${white}"
echo -e "${yellow}Running ${green}${version}${white}\n"
# Remove Existing Archives
echo -e "${yellow}Removing old archives.${white}\n"
sudo rm /path/to/service/services.7z
sudo rm /path/to/service/services.7z.*
sudo rm /var/www/html.7z
sudo rm /var/www/html.7z.*
sudo rm /opt/opt.7z
sudo rm /opt/opt.7z.*
echo -e "\n${green}Finished.${white}\n"
# Incremental Backups
echo -e "${yellow}Creating backup archives.${white}\n"
cd /path/to/service
sudo nice -n11 ionice --class 2 7zz a services
sudo nice -n11 ionice --class 2 rsync --bwlimit=1000 -a --backup --whole-file --suffix=`date +'.%F_%H-%M'` /path/to/service/services.7z /path/to/backups/path/to/service.7z
#cd /var/www/html
#sudo nice -n11 ionice --class 2 sudo 7zz a html
#sudo nice -n11 ionice --class 2 rsync --bwlimit=1000 -a --backup --whole-file --suffix=`date +'.%F_%H-%M'` /var/www/html/html.7z /path/to/backups/var/www/html.7z
cd /opt
sudo nice -n11 ionice --class 2 7zz a opt
sudo nice -n11 ionice --class 2 rsync --bwlimit=1000 -a --backup --whole-file --suffix=`date +'.%F_%H-%M'` /opt/opt.7z /path/to/backups/opt.7z
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /var/spool/cron root/backup/var/spool/cron
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /etc/fstab root/backup/etc/fstab
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /etc/sudoers root/backup/etc/sudoers
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /etc/apt/sources.list /path/to/backups/etc/apt
# Full Backups
sudo nice -n11 ionice --class 2 rsync --bwlimit=1000 -a --backup --whole-file --suffix=`date +'.%F_%H-%M'` /path/to/service/services.7z /path/to/full-backups/path/to/service.7z
sudo nice -n11 ionice --class 2 rsync --bwlimit=1000 -a --backup --whole-file --suffix=`date +'.%F_%H-%M'` /var/www/html/html.7z /path/to/full-backups/var/www/html.7z
sudo nice -n11 ionice --class 2 rsync --bwlimit=1000 -a --backup --whole-file --suffix=`date +'.%F_%H-%M'` /opt/opt.7z /path/to/backups/opt.7z
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /var/spool/cron /path/to/full-backups/var/spool/cron
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /etc/fstab /path/to/full-backups/etc/fstab
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /etc/sudoers /path/to/full-backups/etc/sudoers
sudo nice -n11 ionice --class 2 sudo rsync -rtDvz /etc/apt/sources.list /path/to/full-backups/etc/apt
echo -e "\n${green}Complete.${white}\n"
# Remove Leftovers
echo -e "${yellow}Removing leftovers.${white}\n"
sudo rm /path/to/service/services.7z
sudo rm /path/to/service/services.7z.*
sudo rm /var/www/html.7z
sudo rm /var/www/html.7z.*
sudo rm /opt/opt.7z
sudo rm /opt/opt.7z.*
echo -e "\n${green}Complete.${white}\n"