#! /bin/bash echo "Backify is starting, looking for configuration file..." >&2 config='backup.cfg' config_secured='sbackup.cfg' if config -f "$config"; then echo "Configuration found." >&2 else echo "Configuration not found" >&2 exit fi if egrep -q -v '^#|^[^ ]*=[^;]*' "$config"; then echo "Config file is unclean, cleaning it..." >&2 egrep '^#|^[^ ]*=[^;&]*' "$config" > "$config_secured" config="$config_secured" fi source "$config" echo "Configuration file loaded" >&2 function makedir { timestamp=$(date +%Y%m%d_%H%M) mkdir /tmp/backify-timestamp tmpdir='/tmp/backify-timestamp' } function wwwbackup { if [ "$www_backup" = true ] then echo "Backing up wwwroot..." >&2 mkdir -p $tmpdir/wwwdata cp -r $www_dir/ $tmpdir/wwwdata/ echo "Finished" >&2 fi } function vhostbackup { if [ "$vhost_backup" = true ] then echo "Backing up vhosts..." >&2 mkdir -p $tmpdir/vhosts cp -r $vhost_dir/ $tmpdir/vhosts/ echo "Finished" >&2 fi } function logbackup { if [ "$log_backup" = true ] then echo "Backing up system logs..." >&2 mkdir -p $tmpdir/syslogs cp /var/log/syslog $tmpdir/syslogs/ cp /var/log/message $tmpdir/syslogs/ if [ "$log_backup_web" = true] then if [ "$apache" = true ] then mkdir -p $tmpdir/apachelogs cp -r /var/log/httpd $tmpdir/apachelogs fi if [ "$nginx" = true ] then mkdir -p $tmpdir/nginxlogs cp -r /var/log/nginx $tmpdir/nginxlogs fi fi if [ "$log_purge" = true] then echo "Purging logs..." >&2 truncate -s 0 /var/log/syslog truncate -s 0 /var/log/message if [ "$apache" = true ] then # TODO: removal for .1.2.3 logs truncate -s 0 /var/log/httpd/* fi if [ "$nginx" = true ] then # TODO: removal for .1.2.3 logs truncate -s 0 /var/log/nginx/* fi fi echo "Finished" >&2 fi } function push { if [ "rsync_push" = true ] then #Push if [ "push_clean" = true ] then rm /opt/backify-$timestamp.tar.gz fi fi } function runbackup { if [ "enabled" = true] then # step 1 : create directory makedir # step 2 : wwwbackup wwwbackup # step 3 : vhostbackup vhostbackup # step 4: logbackup logbackup # archive data echo "Creating backup archive..." >&2 tar -czvf /opt/backify-$timestamp.tar.gz $tmpdir # push data to server push echo "Voila, enjoy the rest of the day" >&2 fi } runbackup