pleroma-backup-script/backup.sh
2023-02-01 00:41:09 +08:00

44 lines
1.4 KiB
Bash

#!/bin/bash
source /etc/profile
source ./.env
echo `date +"%Y-%m-%d %H:%M:%S"` " now starting backup"
echo 'stop pleroma'
sudo systemctl stop pleroma
echo "————————————backup to local directory——————————"
echo "1.dump database"
sudo -Hu postgres pg_dump -d $PLEROMA_DB --format=custom -f ${BACKUP_PATH}/pleroma.pgdump
echo "2.pack upload & static folder"
tar -czf static.tar.gz --absolute-names ${PLEROMA_PATH}/static
tar -czf uploads.tar.gz --absolute-names ${PLEROMA_PATH}/uploads}
echo "3.copy config file"
cp ${PLEROMA_CONFIG_PATH} ${BACKUP_PATH}
echo "————————————upload to remote——————————"
echo "4.backup to remote"
/usr/bin/expect <<EOF
set time 30
spawn duplicacy backup -threads 4
expect {
"ID" { send "$ACCESS_KEY_ID\n"; exp_continue }
"Secret" { send "$SECRET_ACCESS_KEY\n"; exp_continue }
"password" { send "$PASSWORD\n" }
}
# 5. (optional)Keep a revision every 7 days for revisions older than 30 days
# spawn duplicacy prune -keep 7:30
# expect {
# "ID" { send "$ACCESS_KEY_ID\n"; exp_continue }
# "Secret" { send "$SECRET_ACCESS_KEY\n"; exp_continue }
# "password" { send "$PASSWORD\n" }
# }
expect eof
EOF
echo "restart pleroma"
sudo systemctl start pleroma
echo `date +"%Y-%m-%d %H:%M:%S"` " done!"