#!/bin/bash # Note: use rclone for backup, needs manually configuration. UPLOAD="" CONFIG="" LOCAL_BACKUP="$HOME/.local/backup" REMOTE="" DB_USERNAME="" DB_PASSWORD="" DB_DATABASE="" CONTAINER_POSTGRES="" SERVICE_SERVER="" STAGING_DIR=$(mktemp -d) mkdir -p $LOCAL_BACKUP DATE=$(date +%F-%H-%M-%S) BACKUP_NAME="backup_$DATE.tar.gz" systemctl --user stop $SERVICE_SERVER podman exec $CONTAINER_POSTGRES pg_dump -U $DB_USERNAME -F c -d $DB_DATABASE > $STAGING_DIR/db.dump cp -r "$UPLOAD" "$STAGING_DIR/storage" cp -r "$CONFIG" "$STAGING_DIR/config" 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_SERVER