Spaces:
Sleeping
Sleeping
| echo "=== Manual Backup Script ===" | |
| # Check if HF_TOKEN and HF_DATASET are set | |
| if [ -z "$HF_TOKEN" ] || [ -z "$HF_DATASET" ]; then | |
| echo "Error: HF_TOKEN or HF_DATASET not set." | |
| echo "Please set these environment variables to use backup." | |
| exit 1 | |
| fi | |
| BACKUP_DIR="/tmp/hf_backup" | |
| mkdir -p "$BACKUP_DIR" | |
| echo "Creating backup archive..." | |
| cd /home/coder | |
| # Create backup archive | |
| tar -czf "$BACKUP_DIR/backup.tar.gz" \ | |
| --exclude='*.log' \ | |
| --exclude='*.sock' \ | |
| --exclude='CachedData' \ | |
| --exclude='Cache' \ | |
| --exclude='GPUCache' \ | |
| .config/code-server \ | |
| .local/share/code-server \ | |
| .continue \ | |
| workspace 2>/dev/null | |
| if [ $? -eq 0 ]; then | |
| echo "Archive created successfully!" | |
| # Get archive size | |
| SIZE=$(du -h "$BACKUP_DIR/backup.tar.gz" | cut -f1) | |
| echo "Archive size: $SIZE" | |
| # Upload to HF dataset using Python | |
| echo "Uploading to Hugging Face dataset: $HF_DATASET" | |
| python3 << 'PYTHON_SCRIPT' | |
| import os | |
| from huggingface_hub import HfApi | |
| from datetime import datetime | |
| try: | |
| api = HfApi() | |
| backup_file = "/tmp/hf_backup/backup.tar.gz" | |
| # Create repo if it doesn't exist | |
| api.create_repo( | |
| repo_id=os.environ["HF_DATASET"], | |
| repo_type="dataset", | |
| private=True, | |
| exist_ok=True | |
| ) | |
| # Upload backup file | |
| api.upload_file( | |
| path_or_fileobj=backup_file, | |
| path_in_repo="backup.tar.gz", | |
| repo_id=os.environ["HF_DATASET"], | |
| repo_type="dataset" | |
| ) | |
| timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
| print(f"✓ Backup uploaded successfully at {timestamp}!") | |
| except Exception as e: | |
| print(f"✗ Upload failed: {e}") | |
| exit(1) | |
| PYTHON_SCRIPT | |
| if [ $? -eq 0 ]; then | |
| echo "=== Backup Complete ===" | |
| else | |
| echo "=== Backup Failed ===" | |
| exit 1 | |
| fi | |
| else | |
| echo "Failed to create backup archive" | |
| exit 1 | |
| fi | |