67 lines
1.5 KiB
Bash
67 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
red="\033[1;31m"
|
|
greenbold="\033[1;32m"
|
|
green="\033[0;32m"
|
|
yellow="\033[0;33m"
|
|
bold="\033[1m"
|
|
#bold_under="\033[1;4m"
|
|
italic="\033[3m"
|
|
underline="\033[4m"
|
|
reset="\033[0m"
|
|
|
|
dotenv () {
|
|
set -a
|
|
# shellcheck disable=SC1091
|
|
[ -f "$HOME/.env" ] && . "$HOME/.env" || echo -e "${red}\nNo .env file found ! Archive won't be encrypted !${reset}"
|
|
set +a
|
|
}
|
|
|
|
dotenv
|
|
|
|
dir_docker="/volume1/docker"
|
|
dir_stacks="/volume1/docker/dockge/stacks"
|
|
dir_backup="/volume1/docker/_backup"
|
|
[ ! -d "$dir_backup" ] && mkdir "$dir_backup"
|
|
|
|
|
|
stacks=$(cd "$dir_stacks" && fd -g docker-compose.yml)
|
|
nb=0
|
|
|
|
while IFS= read -r line; do
|
|
|
|
app=$(echo "${line}" | awk -F"/" '{print $1}')
|
|
folder="$dir_backup/$app"
|
|
[ ! -d "$folder" ] && mkdir "$folder"
|
|
cp "$line" "$folder"
|
|
((nb++))
|
|
|
|
done <<< "$stacks"
|
|
|
|
echo -e "$nb 'docker-compose.yml' files founds in DockGe !"
|
|
|
|
env=$(cd "$dir_stacks" && fd -H -g .env)
|
|
nb=0
|
|
|
|
while IFS= read -r line; do
|
|
|
|
app=$(echo "${line}" | awk -F"/" '{print $1}')
|
|
folder="$dir_backup/$app"
|
|
[ -d "$folder" ] && cp "$line" "$folder"
|
|
((nb++))
|
|
|
|
done <<< "$env"
|
|
|
|
echo -e "$nb '.env' files founds in DockGe !"
|
|
|
|
echo -e "Archivage du dossier _backup..."
|
|
|
|
if ! command -v gpg &> /dev/null; then
|
|
echo -e "${bold}gpg${reset} could not be found !\n"
|
|
echo -e "Archive won't be encrypted !\n"
|
|
echo -e ""
|
|
|
|
tar -zcvf "$dir_docker/backup_Docker.tar.gz" "$dir_backup" >/dev/null 2>&1
|
|
else
|
|
rm "$dir_docker/backup_Docker.tar".gpg && tar -cvzf - "$dir_backup" | gpg --encrypt --recipient $recipient -o "$dir_docker/backup_Docker.tar".gpg
|
|
fi |