Add backup script
This commit is contained in:
@@ -1 +1,3 @@
|
|||||||
.discord
|
.discord
|
||||||
|
.database
|
||||||
|
*.swp
|
||||||
|
|||||||
Executable
+59
@@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
start=$(date +%s)
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
WEBHOOK_URL=$(cat "${SCRIPT_DIR}/.discord")
|
||||||
|
DATABASE_PASSWORD=$(cat "${SCRIPT_DIR}/.database")
|
||||||
|
|
||||||
|
send_discord_message() {
|
||||||
|
local message="$1"
|
||||||
|
local content="`date +\"%Y/%m/%d-%H:%M:%S\"` - $message"
|
||||||
|
curl -H "Content-Type: application/json" -X POST -d "{\"content\": \"$content\"}" "$WEBHOOK_URL"
|
||||||
|
}
|
||||||
|
|
||||||
|
#Enable maintenance mode
|
||||||
|
php8.3 /var/www/nextcloud/occ maintenance:mode --on
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
send_discord_message "Failed to enable maintenance mode."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Backup nextcloud directory
|
||||||
|
echo "Backing up nextcloud directory"
|
||||||
|
rsync -Aax /var/www/nextcloud/ /mnt/backup/nextcloud/
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
send_discord_message "Failed to backup nextcloud directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#Backup database
|
||||||
|
TEMP_FILE="/mnt/backup/db_backups/nextcloud-sqlbackup.bak.tmp"
|
||||||
|
FINAL_FILE="/mnt/backup/db_backups/nextcloud-sqlbackup.bak"
|
||||||
|
echo "Backing up database"
|
||||||
|
export MYSQL_PWD="$DATABASE_PASSWORD"
|
||||||
|
mysqldump --single-transaction --no-tablespaces -h localhost -u cloud_db nextcloud > "$TEMP_FILE"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
send_discord_message "Failed to backup database."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mv "$TEMP_FILE" "$FINAL_FILE"
|
||||||
|
|
||||||
|
#Backup data directory
|
||||||
|
echo "Backing up data directory"
|
||||||
|
rsync -Aax /mnt/cloud/ /mnt/backup/data/
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
send_discord_message "Failed to backup data directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Disable maintenance mode
|
||||||
|
php8.3 /var/www/nextcloud/occ maintenance:mode --off
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
send_discord_message "Failed to disable maintenance mode."
|
||||||
|
fi
|
||||||
|
|
||||||
|
end=$(date +%s)
|
||||||
|
elapsed=$((end - start))
|
||||||
|
send_discord_message "SUCCESS! Finished Nextcloud backup in $elapsed seconds."
|
||||||
Reference in New Issue
Block a user