35 lines
796 B
Bash
35 lines
796 B
Bash
|
|
#!/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/upload"
|
||
|
|
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
|