stacks.sh
Backup des docker-compose.yml et des .env sur le NAS
This commit is contained in:
67
stacks.sh
Normal file
67
stacks.sh
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
#!/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
|
||||||
Reference in New Issue
Block a user