feat: Initial commit.
This commit is contained in:
77
docker-backup.sh
Normal file
77
docker-backup.sh
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
today=$(date +'%F')
|
||||||
|
volumesdir="/var/lib/docker/volumes"
|
||||||
|
stackdir="/etc/komodo/stacks"
|
||||||
|
backupdir="/backups"
|
||||||
|
|
||||||
|
# Add services here to stop and backup.
|
||||||
|
services=(
|
||||||
|
"$stackdir/caddy_housh_dev"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add volumes here to backup.
|
||||||
|
volumes=(
|
||||||
|
"$volumesdir"
|
||||||
|
)
|
||||||
|
|
||||||
|
function stopServices() {
|
||||||
|
echo "Stopping services..."
|
||||||
|
for service in "${services[@]}"; do
|
||||||
|
cd "$service" && docker compose stop
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function startServices() {
|
||||||
|
echo "Restarting services..."
|
||||||
|
for service in "${services[@]}"; do
|
||||||
|
cd "$service" && docker compose up -d
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyStacks() {
|
||||||
|
echo "Copying stack configuration..."
|
||||||
|
local dir="$1/stacks"
|
||||||
|
mkdir "$dir"
|
||||||
|
for service in "${services[@]}"; do
|
||||||
|
cp -R "$service" "$dir"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyVolumes() {
|
||||||
|
echo "Copying volumes..."
|
||||||
|
local dir="$1/volumes"
|
||||||
|
mkdir "$dir"
|
||||||
|
for volume in "${volumes[@]}"; do
|
||||||
|
cp -R "$volume" "$dir"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function backup() {
|
||||||
|
echo "Creating backup..."
|
||||||
|
tar -cvf "/tmp/$today.tar" "$temp"
|
||||||
|
gzip "/tmp/$today.tar"
|
||||||
|
cp -R "/tmp/$today.tar.gz" "$backupdir"
|
||||||
|
# Cleanup temporary files.
|
||||||
|
rm -rf "$temp" "/tmp/$today.tar" "/tmp/$today.tar.gz"
|
||||||
|
}
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
# stop services.
|
||||||
|
stopServices
|
||||||
|
|
||||||
|
# Create a temporary directory.
|
||||||
|
local temp="/tmp/$today"
|
||||||
|
mkdir "$temp"
|
||||||
|
|
||||||
|
# copy stack configuration.
|
||||||
|
copyStacks "$temp"
|
||||||
|
|
||||||
|
# Create a tar to backup.
|
||||||
|
backup
|
||||||
|
|
||||||
|
# Restart services.
|
||||||
|
startServices
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
Reference in New Issue
Block a user