mirror of
https://github.com/CodeSeeed/sbackup.git
synced 2026-10-02 18:32:58 +08:00
4.3 KiB
4.3 KiB
What's New
Major Features
Multi-Destination Backup
- Parallel backup to local + multiple remote targets simultaneously
- Supports SFTP + WebDAV + S3 cloud storage in a single operation
- Independent failure handling per destination
S3 Cloud Storage
- AWS S3 compatible storage support (AWS, MinIO, Alibaba Cloud OSS, etc.)
- Upload/download/delete operations
- Auto-create bucket if not exists
Data Integrity
- SHA256 checksum generation and verification
- Reed-Solomon error correction codes (reedsolo)
- Tamper detection with HMAC validation
Task Queue System
- JSON-persistent task queue management
- Add, execute, cancel, delete tasks
- Async background execution with status tracking
Cross-Archive Search
- Search for files across multiple backup archives
- Pattern matching with wildcard support
- Results grouped by archive
Selective Restore
- Restore specific files matching patterns
- Keyword-based file extraction
- Dry-run preview before actual restore
Backup Rotation
- Keep-count policy: retain latest N backups
- Keep-days policy: retain backups within N days
- Keep-daily policy: retain N daily backups
Pre/Post Hooks
- Execute custom commands before/after backup
- Timeout control and error handling
- Cross-platform command parsing
Configuration Profile
- Save/load/delete named profiles
- Switch between different backup configurations
- Import/export profiles as JSON
Audit Logging
- Record all backup/restore operations
- Search by time range and event type
- JSON-persistent audit trail
Performance & Reliability
- Chunked Backup: 64KB block-level incremental backup
- File Deduplication: SHA256-based dedup to avoid redundant uploads
- Parallel Compression: Multi-threaded compression for large backups
- Bandwidth Limiter: Token bucket rate limiting for remote uploads
- Retry Mechanism: Exponential backoff for network operations
- Backup Lock: Cross-platform process lock to prevent concurrent runs
New Commands (27 added)
| Command | Description |
|---|---|
edit |
Edit existing backup strategy |
history |
View backup version history |
info |
View backup file details |
diff |
Compare source directory with backup |
verify |
Verify backup file integrity |
remote |
Remote file management (list/rm) |
export / import |
Export/import backup strategies |
status |
Backup status dashboard |
ignore |
Generate .sbackupignore file |
versions |
View backup version history |
schedule |
Export cron/schtasks configuration |
webhook |
Configure webhook presets |
config |
Encrypt/decrypt/validate config |
report |
Generate HTML/JSON backup reports |
search |
Search files in backup |
xsearch |
Cross-archive search |
clean |
Clean old backups |
completion |
Generate shell completion scripts |
wizard |
Interactive configuration wizard |
task |
Task queue management |
audit |
Audit log queries |
hooks |
Manual hook execution |
profile |
Configuration profile management |
rotate |
Backup rotation cleanup |
diskcheck |
Disk space estimation |
benchmark |
Compression format benchmarking |
integrity |
Directory integrity verification |
Remote Backup Enhancements
- SFTP: Auto-detect default SSH keys (~/.ssh/id_rsa, id_ed25519)
- SFTP: Host key verification with known_hosts
- SFTP: Allow password fallback on private key auth failure
- WebDAV: Zero-dependency urllib implementation
- WebDAV: SSRF protection (protocol/IP validation)
- WebDAV: Proper PROPFIND redirect handling
- S3: MinIO client with path prefix support
Security
- PBKDF2 encryption for sensitive config fields
- HMAC-SHA256 config tamper detection
- SSRF protection for WebDAV and webhook URLs
- Safe archive extraction (path traversal prevention)
Developer Experience
- 37 CLI commands
- 37 source modules
- 9 language translations (665 keys each)
- 940 tests, 0 failures
- CI/CD: pytest on 3 platforms x 2 Python versions
- Release automation with versioned binary names
Installation
pip install sbackup-cli
Binary downloads:
| Platform | File |
|---|---|
| Windows x64 | sbackup-2.0.0-windows-x64.exe |
| macOS ARM64 | sbackup-2.0.0-macos-arm64 |
| macOS x64 | sbackup-2.0.0-macos-x86_64 |
| Linux x64 | sbackup-2.0.0-linux-x86_64 |