2025-05-10 19:06:25 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
if [ -z "$SCW_ACCESS_KEY" ] || [ -z "$SCW_SECRET_KEY" ]; then
|
|
|
|
|
echo "SCW_ACCESS_KEY and SCW_SECRET_KEY must be set"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "$BUCKET_NAME" ]; then
|
|
|
|
|
echo "BUCKET_NAME must be set"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "$APP_NAME" ]; then
|
|
|
|
|
echo "APP_NAME must be set"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "$BACKUP_RETENTION" ]; then
|
|
|
|
|
echo "BACKUP_RETENTION must be set"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2025-05-10 19:40:01 +02:00
|
|
|
# install required packages
|
2025-05-10 19:06:25 +02:00
|
|
|
apk update
|
|
|
|
|
apk add gettext
|
2025-05-10 19:18:16 +02:00
|
|
|
|
2025-05-10 19:40:01 +02:00
|
|
|
# Create rclone config (Scaleway)
|
|
|
|
|
envsubst < /etc/rclone.conf.tmpl > /tmp/rclone.conf
|
|
|
|
|
unset SCW_ACCESS_KEY
|
|
|
|
|
unset SCW_SECRET_KEY
|
|
|
|
|
|
2025-05-10 19:18:16 +02:00
|
|
|
# Create backup
|
2025-05-10 19:40:01 +02:00
|
|
|
echo "Creating backup of /src directory"
|
2025-05-10 19:18:16 +02:00
|
|
|
tar -zcvpf /backup/$APP_NAME-files-`date +\"%Y%m%d\"`.tar.gz /src
|
2025-05-10 19:06:25 +02:00
|
|
|
|
|
|
|
|
# Remove old backups
|
|
|
|
|
BACKUP_FILE_PATTERN="$APP_NAME-files-*.tar.gz"
|
2025-05-10 19:40:01 +02:00
|
|
|
echo "Removing old backups matching pattern: $BACKUP_FILE_PATTERN"
|
2025-05-10 19:09:21 +02:00
|
|
|
find /backup -type f -name "$BACKUP_FILE_PATTERN" -mtime +$BACKUP_RETENTION | xargs --no-run-if-empty rm
|
2025-05-10 19:06:25 +02:00
|
|
|
|
|
|
|
|
# Upload to Scaleway
|
2025-05-10 19:40:01 +02:00
|
|
|
echo "Uploading backup to Scaleway bucket"
|
|
|
|
|
/usr/local/bin/rclone --config=/tmp/rclone.conf sync --progress /backup "scaleway:$BUCKET_NAME/$APP_NAME-backup"
|