From 234fe510dbf749e9fdc9b883683715b0fc8787bf Mon Sep 17 00:00:00 2001 From: gospodar Date: Fri, 10 Feb 2023 20:33:42 +0100 Subject: [PATCH] Root check and docker image integration --- backup.cfg | 2 ++ main.sh | 30 +++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/backup.cfg b/backup.cfg index fe56be7..8bee017 100644 --- a/backup.cfg +++ b/backup.cfg @@ -25,6 +25,8 @@ target_host="127.0.0.1" # rsync target host target_user="backup" # rsync target user target_key='/home/xyz/.ssh/rsync' # rsync key #Docker +docker_enabled=false # will you use docker backup +docker_images=false # backup docker images #Docker volumes #Rsync #Daily cron diff --git a/main.sh b/main.sh index 5f8f790..488ec24 100644 --- a/main.sh +++ b/main.sh @@ -22,6 +22,11 @@ source "$config" echo "Configuration file loaded" >&2 +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + function makedir { timestamp=$(date +%Y%m%d_%H%M) mkdir /tmp/backify-$timestamp @@ -97,16 +102,35 @@ function push { fi } +function dockerbackup { + if [ "docker_enabled" = true] then + if [ "docker_images" = true] then + echo "Backing up Docker images..." >&2 + for i in `docker inspect --format='{{.Name}}' $(docker ps -q) | cut -f2 -d\/` + do container_name=$i + echo -n "$container_name - " + container_image=`docker inspect --format='{{.Config.Image}}' $container_name` + mkdir -p $tmpdir/containers/$container_name + save_dir="$tmpdir/containers/$container_name/$container_name-image.tar" + docker save -o $save_dir $container_image + echo "Finished" >&2 +done + fi + fi +} + function runbackup { if [ "enabled" = true] then # step 1 : create directory makedir - # step 2 : wwwbackup + # step 2 : www backup wwwbackup - # step 3 : vhostbackup + # step 3 : vhost backup vhostbackup - # step 4: logbackup + # step 4: log backup logbackup + # step 5: docker backup + dockerbackup # archive data echo "Creating backup archive..." >&2 tar -czvf /opt/backify-$timestamp.tar.gz $tmpdir