OS detection, function over everything

This commit is contained in:
gospodar 2023-02-11 11:13:17 +01:00
parent f5d1d86a3a
commit 89086a68d3

87
main.sh
View File

@ -1,5 +1,6 @@
#! /bin/bash #! /bin/bash
function init {
echo "Backify is starting, looking for configuration file..." >&2 echo "Backify is starting, looking for configuration file..." >&2
config='backup.cfg' config='backup.cfg'
@ -27,6 +28,22 @@ if [ "$EUID" -ne 0 ]
then echo "Please run as root" then echo "Please run as root"
exit exit
fi fi
}
function system {
if [ -f /etc/redhat-release ]
then
system='rhel'
fi
if [ -f /etc/lsb-release ]
then
system='ubuntu'
fi
echo "Discovered $system based OS..." >&2
}
function makedir { function makedir {
timestamp=$(date +%Y%m%d_%H%M) timestamp=$(date +%Y%m%d_%H%M)
@ -54,7 +71,7 @@ then
fi fi
} }
function logbackup { function logbackupcentos {
if [ "$log_backup" = true ] if [ "$log_backup" = true ]
then then
echo "Backing up system logs..." >&2 echo "Backing up system logs..." >&2
@ -88,13 +105,64 @@ then
truncate -s 0 /var/log/message truncate -s 0 /var/log/message
if [ "$apache" = true ] if [ "$apache" = true ]
then then
# TODO: removal for .1.2.3 logs
truncate -s 0 /var/log/httpd/* truncate -s 0 /var/log/httpd/*
rm /var/log/httpd/*.gz
fi fi
if [ "$nginx" = true ] if [ "$nginx" = true ]
then then
# TODO: removal for .1.2.3 logs
truncate -s 0 /var/log/nginx/* truncate -s 0 /var/log/nginx/*
rm /var/log/nginx/*.gz
fi
if [ "$fail2ban_log" = true ]
then
truncate -s 0 /var/log/fail2ban.log
fi
fi
echo "Finished" >&2
fi
}
function logbackupubuntu {
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 [ "$fail2ban_log" = true ]
then
cp /var/log/fail2ban.log $tmpdir/syslogs/
fi
if [ "$log_backup_web" = true]
then
if [ "$apache" = true ]
then
mkdir -p $tmpdir/apachelogs
cp -r /var/log/apache2 $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
truncate -s 0 /var/log/apache2/*
rm /var/log/apache2/*.gz
fi
if [ "$nginx" = true ]
then
truncate -s 0 /var/log/nginx/*
rm /var/log/nginx/*.gz
fi fi
if [ "$fail2ban_log" = true ] if [ "$fail2ban_log" = true ]
then then
@ -164,6 +232,10 @@ function dockerbackup {
} }
function runbackup { function runbackup {
# init, config check
init
# run system detection
system
if [ "$enabled" = true ] if [ "$enabled" = true ]
then then
# step 1 : create directory # step 1 : create directory
@ -173,7 +245,14 @@ function runbackup {
# step 3 : vhost backup # step 3 : vhost backup
vhostbackup vhostbackup
# step 4: log backup # step 4: log backup
logbackup if [ $system = "rhel" ]
then
logbackuprhel
fi
if [ $system = "ubuntu" ]
then
logbackupubuntu
fi
# step 5: docker backup # step 5: docker backup
dockerbackup dockerbackup
# archive data # archive data