#!/bin/bash
#************************************************************************************
#*  SYSBACK script version 1.4 Voor HOMESERVER.               Ben Makkink 23/06/2017*
#************************************************************************************
#*  Eenvoudig programmaatje om het OS-systeem van de server als backup op te slaan  *
#*  Het script wordt door de cron " 0 0 * * 0 /usr/local/bin/sysback &> /dev/null"  *
#*  elke 1e dag van de week om 00.00 uur uitgevoerd. De tar wordt opgeslagen in     *
#*  /vault/sysback. Zie aan het eind de restore informatie                          *
#************************************************************************************

# Plaats jezelf in de root
cd /;

# Set VARIABLES
# Geef hier aan waar backups opgeslagen moeten worden
sysbackdir="/vault/sysback/";

# Geef hier aan welk datumformaat gebruikt moet worden voor de bestandsnaam van de backup
datestamp=$(date +%Y%m%d)

# Maak tarball van systeem bestanden
tar -cvzf $sysbackdir$datestamp"-sysback.tar.gz" / --exclude /vault --exclude /proc --exclude /sys --exclude /home --exclude /store --exclude /var/www/html --exclude /var/lib/BackupPC --exclude /var/lib/system-mysql --exclude /var/lib/mysql --exclude /var/clearos/configuration_backup --exclude /run;

# delete bestaande tarballs die meer dan twee weken oud zijn
find $sysbackdir -maxdepth 1 -mtime +14 -name *sysback.* -exec rm {} \;;

# ===========================================================================================
# RESTORE SERVER met (secties uit) tarball samengesteld met script SYSBACK
# ===========================================================================================
# Sysback v1.4 23 juni 2017 Ben Makkink
# -------------------------------------------------------------------------------------------
# 1. Bestanden (tarballs) zijn opgeslagen in /vault/sysback
# 2. Tarballs zijn gecreeerd met path vanuit root '/'
# 3. !!! Dus extract (restore) uitvoeren vanuit root '/' !!!
#
# Hier een voorbeeld met een backup met naam: 20151025-sysback.tar.gz
# Gebruik volgende commando's:
# #cd /                                              (extract tarball vanuit root)
# #ls /vault/sysback                                 (haal lijst met bestaande tarballs)
# #tar -tzvf /vault/sysback/20151025-sysback.tar.gz  (lijst van bestanden in een tarball)
# voorbeeld: usr
#            usr/lib64/security/
#            usr/lib64/security/pam_chroot.so
#            etc.
# #tar -tzvf /vault/sysback/20151025-sysback.tar.gz usr/local/bin
# toont lijst van bestanden onder usr/local/bin in de tarball
#
# #tar -xzvf /vault/sysback/20151025-sysback.tar.gz
#                              (restore complete '/' directory en subdirectories)
# #tar -xzvf /vault/sysback/20151025-sysback.tar.gz usr
#                              (restore alleen subdir 'usr' en al z'n subdirectories)
# #tar -xzvf /vault/sysback/20151025-sysback.tar.gz usr/local/bin/sysback
#                              (restore alleen bestand 'sysback')
#
# Als bijvoorbeeld met het laatste voorbeeld de fout gemaakt wordt dit commando niet vanuit
# / (root) te geven maar vanuit /home dan belandt het uitgepakte bestand op
# /home/usr/local/bin/sysback. Dus een hele nieuwe reeks met (sub)dirs op de verkeerde plaats.
#
# Opties van commando tar:
# -c creeer,  -t list,  -x extract, -z zip/unzip naar/van gz,  -v verbose
# -f onmiddellijk gevolgt door de tarball naam.
#
# Restore GRUB
# =============
# De tarball 20151025-sysback.tar.gz bevat de rootbestanden en de kernel. Na een
# restore met dit bestand zal ClearOS mogelijk niet opstarten en moet het
# bootprogramma GRUB hersteld worden met behulp van de installatie USB:
# 1. Plaats monitor en keyboard. Boot computer met installatie USB (gaat automatisch als
#    de boot USB geplaatst is. Selecteer de rescue optie.
# 2. a # sudo su                                       e # grub -install /dev/sda1
#    b # mkdir /mnt/test                               f # exit
#    c # mount -t ext4 -o dev/sda1 /mnt/test           g # umount /mnt/test
#    d # cd /dev/sda1                                  h # reboot (zonder CD)
#
# ===========================================================================================

