backup.sh 917 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. # Backup script for Cognio database
  3. set -e
  4. # Configuration
  5. DB_PATH="${DB_PATH:-./data/memory.db}"
  6. BACKUP_DIR="./backups"
  7. TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
  8. BACKUP_FILE="$BACKUP_DIR/memory_backup_$TIMESTAMP.db"
  9. echo "=== Cognio Backup ==="
  10. echo ""
  11. # Create backup directory
  12. mkdir -p "$BACKUP_DIR"
  13. # Check if database exists
  14. if [ ! -f "$DB_PATH" ]; then
  15. echo "Error: Database not found at $DB_PATH"
  16. exit 1
  17. fi
  18. # Backup database
  19. echo "Backing up database..."
  20. cp "$DB_PATH" "$BACKUP_FILE"
  21. # Compress backup
  22. echo "Compressing backup..."
  23. gzip "$BACKUP_FILE"
  24. FINAL_FILE="$BACKUP_FILE.gz"
  25. FILE_SIZE=$(du -h "$FINAL_FILE" | cut -f1)
  26. echo ""
  27. echo "Backup completed successfully!"
  28. echo "File: $FINAL_FILE"
  29. echo "Size: $FILE_SIZE"
  30. echo ""
  31. # Clean up old backups (keep last 10)
  32. echo "Cleaning old backups..."
  33. ls -t "$BACKUP_DIR"/memory_backup_*.db.gz | tail -n +11 | xargs -r rm
  34. echo ""
  35. echo "Done!"