dbeaver-backup.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env bash
  2. # DBeaver Profile Backup Script
  3. # This script creates a backup of DBeaver profiles and configurations
  4. # Configuration variables - modify as needed
  5. BACKUP_DIR="/home/forbi/Sync/Backups"
  6. HOSTNAME=$(hostname)
  7. BACKUP_FILE="dbeaver_backup_${HOSTNAME}.tar.gz"
  8. LOG_FILE="$BACKUP_DIR/dbeaver_backup_log.txt"
  9. # DBeaver configuration location
  10. DBEAVER_DATA="$HOME/.local/share/DBeaverData" # Contains drivers, workspace, and secure storage
  11. # Create backup directory if it doesn't exist
  12. mkdir -p "$BACKUP_DIR"
  13. # Start logging
  14. echo "===== DBeaver Backup Started at $(date) =====" >>"$LOG_FILE"
  15. # Check if DBeaver configuration exists
  16. if [ ! -d "$DBEAVER_DATA" ]; then
  17. echo "Error: DBeaver configuration not found at $DBEAVER_DATA. Please make sure DBeaver is installed and has been run at least once." | tee -a "$LOG_FILE"
  18. exit 1
  19. fi
  20. # Create temporary directory for backup
  21. TEMP_DIR=$(mktemp -d)
  22. echo "Created temporary directory: $TEMP_DIR" >>"$LOG_FILE"
  23. # Copy DBeaver data to temporary directory
  24. echo "Copying DBeaver data from $DBEAVER_DATA..." >>"$LOG_FILE"
  25. cp -r "$DBEAVER_DATA" "$TEMP_DIR/"
  26. # Create compressed archive
  27. echo "Creating backup archive..." >>"$LOG_FILE"
  28. tar -czf "$BACKUP_DIR/$BACKUP_FILE" -C "$TEMP_DIR" .
  29. BACKUP_RESULT=$?
  30. # Clean up temporary directory
  31. echo "Cleaning up temporary files..." >>"$LOG_FILE"
  32. rm -rf "$TEMP_DIR"
  33. # Check if backup was successful
  34. if [ $BACKUP_RESULT -eq 0 ]; then
  35. echo "Backup completed successfully: $BACKUP_DIR/$BACKUP_FILE" | tee -a "$LOG_FILE"
  36. echo "Backup size: $(du -h "$BACKUP_DIR/$BACKUP_FILE" | cut -f1)" | tee -a "$LOG_FILE"
  37. echo "Keeping only the latest backup for this PC ($HOSTNAME)" >>"$LOG_FILE"
  38. else
  39. echo "Error: Backup failed with exit code $BACKUP_RESULT" | tee -a "$LOG_FILE"
  40. fi
  41. echo "===== DBeaver Backup Finished at $(date) =====" >>"$LOG_FILE"