Some checks failed
Build, Push, Publish / Build & Release (push) Failing after 2s
32 lines
1.9 KiB
Bash
32 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
FILENAMEDATE=$(date +%Y-%m-%dT%H-%M-%S) # date-time format to be used on files
|
|
DATABASE=db-name # database name
|
|
USER=db-username-or-db-root # db username with read access
|
|
RCLONEREMOTE=rclone-remote-name # rclone remote name
|
|
BUCKET=bucket-name # rclone remote name
|
|
WEBDIR1=/path1/of/webdir/before/webfolder # path previous to planned for backup
|
|
# WEBDIR2=/path2/of/webdir/before/webfolder # use it if you have more than 1 webdir to backup
|
|
WEBFOLDER1=htdocs-or-equivalent # path previous to planned for backup
|
|
# WEBFOLDER2=htdocs-or-equivalent # use it if you have more than 1 webfolder to backup
|
|
RETENTION=7d # retention required before delete file
|
|
# PGPASSWORD=db-user-password # uncomment and update with Postgres password if needed
|
|
|
|
mkdir -p ./backup
|
|
|
|
# Edit accordly for MariaDB backup. You can also use for MySQL backup just changing dump application. Comment of you do not need it.
|
|
mariadb-dump --defaults-extra-file=./.dbpassword.cnf -u $USER --single-transaction --skip-lock-tables --quick $DATABASE > ./backup/$FILENAMEDATE.sql
|
|
|
|
# Ucomment and edit accordly for Postgres backup.
|
|
# export PGPASSWORD=$PGPASSWORD
|
|
# pg_dump -h 127.0.0.1 -U $USER $DATABASE > ./backup/$FILENAMEDATE.sql
|
|
|
|
tar -czf ./backup/$FILENAMEDATE-DB.tar.gz --remove-files ./backup/$FILENAMEDATE.sql
|
|
tar -zcf ./backup/$FILENAMEDATE-$WEBFOLDER1.tar.gz --exclude=*.tar.gz -C $WEBDIR1 $WEBFOLDER1
|
|
# tar -zcf ./backup/$FILENAMEDATE-$WEBFOLDER2.tar.gz --exclude=*.tar.gz -C $WEBDIR2 $WEBFOLDER2
|
|
|
|
rclone move ./backup/$FILENAMEDATE-DB.tar.gz $RCLONEREMOTE:$BUCKET/
|
|
rclone move ./backup/$FILENAMEDATE-$WEBFOLDER1.tar.gz $RCLONEREMOTE:$BUCKET/
|
|
# rclone move ./backup/$FILENAMEDATE-$WEBFOLDER2.tar.gz $RCLONEREMOTE:$BUCKET/
|
|
rclone delete --min-age $RETENTION $RCLONEREMOTE:$BUCKET/ --b2-hard-delete
|