From 0f08ed311e4c44e11143df6006e9f6ef42a19b11 Mon Sep 17 00:00:00 2001 From: Donovan Date: Thu, 5 Dec 2024 16:02:56 -0600 Subject: [PATCH] move backup_sqlite.sh to cron-nkode repo --- scripts/backup_sqlite.sh | 80 ---------------------------------------- 1 file changed, 80 deletions(-) delete mode 100644 scripts/backup_sqlite.sh diff --git a/scripts/backup_sqlite.sh b/scripts/backup_sqlite.sh deleted file mode 100644 index 3c28e22..0000000 --- a/scripts/backup_sqlite.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -source ~/awscli-env/bin/activate -# Usage: ./backup_script.sh -l true or ./backup_script.sh -l false - -# Parse command-line argument for local_db flag -while getopts "l:" opt; do - case $opt in - l) - LOCAL_DB=$OPTARG - ;; - *) - echo "Usage: $0 -l [true|false]" - exit 1 - ;; - esac -done - -# Validate LOCAL_DB argument -if [ "$LOCAL_DB" != "true" ] && [ "$LOCAL_DB" != "false" ]; then - echo "Error: Invalid value for -l. Must be 'true' or 'false'." - exit 1 -fi - -# Set the database path and backup destination based on LOCAL_DB value -if [ "$LOCAL_DB" = true ]; then - DB_PATH="/Users/donov/databases/nkode.db" - BACKUP_DIR="/var/tmp" -else - DB_PATH="/home/dkelly/database/nkode.db" - BACKUP_DIR="/var/tmp" -fi - -BACKUP_NAME="backup_nkode_$(date +'%Y%m%d%H%M%S').tar.gz" - -# Check if the database file exists -if [ ! -f "$DB_PATH" ]; then - echo "Error: Database file not found at $DB_PATH" - exit 1 -fi - -# Perform a WAL checkpoint to flush the WAL file to the main DB file -echo "Checkpointing WAL..." -sqlite3 "$DB_PATH" "PRAGMA wal_checkpoint(FULL);" -if [ $? -ne 0 ]; then - echo "Error: Failed to checkpoint WAL" - exit 1 -fi - -# Check if related files (.wal, .shm) exist -WAL_FILE="${DB_PATH}-wal" -SHM_FILE="${DB_PATH}-shm" - -# Create a list of files to back up (main DB, WAL, and SHM if they exist) -FILES_TO_BACKUP=("$DB_PATH") -if [ -f "$WAL_FILE" ]; then - FILES_TO_BACKUP+=("$WAL_FILE") -fi -if [ -f "$SHM_FILE" ]; then - FILES_TO_BACKUP+=("$SHM_FILE") -fi - -# Create a tar.gz archive of the database and related files -echo "Creating backup..." -tar -czf "$BACKUP_DIR/$BACKUP_NAME" "${FILES_TO_BACKUP[@]}" -if [ $? -eq 0 ]; then - echo "Backup successful: $BACKUP_DIR/$BACKUP_NAME" -else - echo "Error: Backup failed" - exit 1 -fi - -# Upload backup to S3 -aws s3 cp "$BACKUP_DIR/$BACKUP_NAME" s3://nkode-db-backup -if [ $? -eq 0 ]; then - echo "Backup uploaded to S3 successfully." -else - echo "Error: Failed to upload backup to S3." - exit 1 -fi