High-throughput parallel file system cleaner
Project description
BeeperPurge 🧹
High-throughput parallel file system cleaner designed for efficiently eliminating millions of old files as close to simultaneously as possible.
Features
- 🚀 Parallel processing with multi-threading
- 🎯 Precision targeting of files by age
- 🔍 Dry-run mode for operation verification
- 📝 Kubernetes-friendly JSON logging
- 🔒 Safe handling of sensitive file systems
- ⚙️ Configurable age thresholds
- 🐳 Production-ready container with security best practices
Installation
Using Docker (Recommended)
docker pull ghcr.io/your-username/beeper-purge:latest
# Always verify targets first with dry run
docker run -v /path/to/clean:/data ghcr.io/RiveryIO/beeper-purge:latest \
/data --dry-run --max-age-hours 36
# Execute purge operation
docker run -v /path/to/clean:/data ghcr.io/RiveryIO/beeper-purge:latest \
/data --max-age-hours 36
Using pip
pip install beeper-purge
Usage
# Show help
beeperpurge --help
# Reconnaissance (dry run)
beeperpurge /path/to/clean --dry-run --max-age-hours 36
# Execute purge
beeperpurge /path/to/clean --max-age-hours 36 --workers 16
# Show version
beeperpurge --version
Operational Metrics
$ beeperpurge /data --dry-run
{
"timestamp": "2024-11-02T10:15:30,123",
"level": "INFO",
"message": "Starting purge operation",
"extra_fields": {
"root_path": "/data",
"dry_run": true,
"max_workers": 16
}
}
...
{
"timestamp": "2024-11-02T10:15:35,456",
"level": "INFO",
"message": "Operation completed",
"extra_fields": {
"files_processed": 1000000,
"files_targeted": 150000,
"duration_seconds": 5.33,
"elimination_rate": 187617
}
}
Safety Protocols
- 🛡️ Dry-run mode for target verification
- 🔗 No symlink following
- 🚨 Comprehensive error handling
- 👤 Non-root container execution
- ✅ Extensive test coverage
Performance Specifications
Scalability
- Efficiently handles millions of files
- Memory usage scales linearly with worker count
- I/O optimized operations
Recommended Configurations
- Standard systems: 8-16 workers
- High-performance systems: 16-32 workers
- Adjust based on:
- Available CPU cores
- I/O capabilities
- File system response times
Development
Setup
# Clone repository
git clone https://github.com/RiveryIO/BeeperPurge.git
cd beeperpurge
# Create virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
# Install development dependencies
pip install -e ".[dev]"
Testing
# Full test suite
pytest
# Coverage analysis
pytest --cov=beeper_purge
# Specific test execution
pytest tests/test_cleaner.py
Container Build
docker build -t beeper-purge .
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/enhancement) - Commit your changes (
git commit -m 'Add enhancement') - Push to the branch (
git push origin feature/enhancement) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
beeperpurge-1.0.12.tar.gz
(10.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beeperpurge-1.0.12.tar.gz.
File metadata
- Download URL: beeperpurge-1.0.12.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8151b2ccbe5eeabe6b26dc0fd5eb431c86a57e7513ed73be51397e3ec4ffd948
|
|
| MD5 |
cbbf2518220b35d1768543a103a45181
|
|
| BLAKE2b-256 |
f0079670a523679c6f779cc9bc8e67ca4830cb47102fc5107fa4d22537ff274d
|
File details
Details for the file beeperpurge-1.0.12-py3-none-any.whl.
File metadata
- Download URL: beeperpurge-1.0.12-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef2309d89db50a73331f32dc2ce271e1054e2f4b75e3c48bcd6ec7ee6c7daac4
|
|
| MD5 |
3089863fa2750c6f2ce37b36213e87c6
|
|
| BLAKE2b-256 |
efedb16ec759d1636c37dbeb3a05321ed4d801d45786491f8f5c52162e2ed0e3
|