diff --git a/nix-system-configs/modules/system_scripts/gcloud_backup.nix b/nix-system-configs/modules/system_scripts/gcloud_backup.nix index 5916c7f..9eba41b 100644 --- a/nix-system-configs/modules/system_scripts/gcloud_backup.nix +++ b/nix-system-configs/modules/system_scripts/gcloud_backup.nix @@ -96,20 +96,24 @@ set -euo pipefail export GOOGLE_APPLICATION_CREDENTIALS="${config.sops.secrets.gcloud_bucket.path}" + ## DEBUG ALL GOOGLE APPLICATION CREDENTIALS TO SEE IF THERE IS ANY ISSUE WITH THE CREDENTIALS + echo "GOOGLE_APPLICATION_CREDENTIALS: ${GOOGLE_APPLICATION_CREDENTIALS}" + export PATH="${lib.makeBinPath [pkgs.mariadb pkgs.gzip pkgs.google-cloud-sdk pkgs.gnupg pkgs.coreutils pkgs.gnugrep]}:$PATH" + TIMESTAMP=$(date +%Y%m%d%H%M%S) BACKUP_DIR=$(mktemp -d) trap 'rm -rf "$BACKUP_DIR"' EXIT gpg --batch --import "${gpgPublicKey}" - DATABASES=$(mysql -u root -e "SHOW DATABASES;" | grep -Ev "^(Database|information_schema|performance_schema|mysql|sys)$") + DATABASES=$(mariadb -u root -e "SHOW DATABASES;" | grep -Ev "^(Database|information_schema|performance_schema|mysql|sys)$") for DB in $DATABASES; do echo "Backing up MariaDB database: $DB" FILENAME="mariadb_''${DB}_''${TIMESTAMP}.sql.gz.gpg" - if mysqldump -u root "$DB" | gzip | gpg --batch --trust-model always --encrypt --recipient "${gpgRecipient}" > "$BACKUP_DIR/$FILENAME"; then + if mariadb-dump -u root "$DB" | gzip | gpg --batch --trust-model always --encrypt --recipient "${gpgRecipient}" > "$BACKUP_DIR/$FILENAME"; then gsutil cp "$BACKUP_DIR/$FILENAME" "gs://${gcsBucket}/mariadb/$FILENAME" echo "Successfully uploaded encrypted $FILENAME" else @@ -117,6 +121,7 @@ exit 1 fi done + ''; in { systemd.services.backup-postgresql = {