#!/bin/bash # Note: use rclone for backup, needs manually configuration. export XDG_RUNTIME_DIR="/run/user/$(id -u)" export DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus" DATA="" DB="" LOCAL_BACKUP="$HOME/.local/backup" REMOTE="" DB_USERNAME="" DB_PASSWORD="" DB_DATABASE="" CONTAINER_DB="" SERVICE="" STAGING_DIR=$(mktemp -d) mkdir -p $LOCAL_BACKUP DATE=$(date +%F-%H-%M-%S) BACKUP_NAME="backup_$DATE.tar.gz" systemctl --user stop $SERVICE podman exec $CONTAINER_DB pg_dump -U $DB_USERNAME -F c -d $DB_DATABASE > $STAGING_DIR/db.dump cp -r "$DATA" "$STAGING_DIR/data" cp -r "$DB" "$STAGING_DIR/db" tar -czf "$LOCAL_BACKUP/$BACKUP_NAME" -C "$STAGING_DIR" . ls -1t "$LOCAL_BACKUP"/backup_*.tar.gz | tail -n +6 | xargs -r rm -- /usr/bin/rclone sync $LOCAL_BACKUP $REMOTE > /dev/null rm -rf $STAGING_DIR systemctl --user start $SERVICE