2023-02-10 13:49:35 +00:00
|
|
|
#! /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
|
2023-02-10 14:43:57 +00:00
|
|
|
echo "Configuration not found" >&2
|
2023-02-10 13:49:35 +00:00
|
|
|
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
|
|
|
|
|
2023-02-10 14:43:57 +00:00
|
|
|
function makedir {
|
2023-02-10 15:36:51 +00:00
|
|
|
timestamp=$(date +%Y%m%d_%H%M)
|
|
|
|
mkdir /tmp/backify-timestamp
|
|
|
|
tmpdir='/tmp/backify-timestamp'
|
2023-02-10 14:43:57 +00:00
|
|
|
}
|
2023-02-10 13:49:35 +00:00
|
|
|
|
2023-02-10 14:43:57 +00:00
|
|
|
function wwwbackup {
|
2023-02-10 13:49:35 +00:00
|
|
|
if [ "$www_backup" = true ] then
|
|
|
|
echo "Backing up wwwroot..." >&2
|
|
|
|
mkdir -p $tmpdir/wwwdata
|
|
|
|
cp -r $www_dir/ $tmpdir/wwwdata/
|
|
|
|
echo "Finished" >&2
|
|
|
|
fi
|
2023-02-10 14:43:57 +00:00
|
|
|
}
|
2023-02-10 13:49:35 +00:00
|
|
|
|
2023-02-10 14:43:57 +00:00
|
|
|
function vhostbackup {
|
2023-02-10 13:49:35 +00:00
|
|
|
if [ "$vhost_backup" = true ] then
|
|
|
|
echo "Backing up vhosts..." >&2
|
|
|
|
mkdir -p $tmpdir/vhosts
|
|
|
|
cp -r $vhost_dir/ $tmpdir/vhosts/
|
|
|
|
echo "Finished" >&2
|
2023-02-10 14:43:57 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2023-02-10 15:36:51 +00:00
|
|
|
function push {
|
|
|
|
if [ "rsync_push" = true ] then
|
|
|
|
#Push
|
|
|
|
if [ "push_clean" = true ] then
|
|
|
|
rm /opt/backify-$timestamp.tar.gz
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-02-10 14:43:57 +00:00
|
|
|
function runbackup {
|
2023-02-10 15:36:51 +00:00
|
|
|
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
|
2023-02-10 14:43:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
runbackup
|