58 lines
No EOL
1.8 KiB
Markdown
58 lines
No EOL
1.8 KiB
Markdown
The script does the following:
|
|
|
|
1. Comprehensive Logging System:
|
|
- Dedicated log directory and rotation
|
|
- Configurable log file size limits
|
|
- Different log levels (INFO, WARN, ERROR)
|
|
- Verbose mode option
|
|
- Log rotation when size limit is reached
|
|
|
|
2. Robust Error Handling:
|
|
- Error codes for different failure scenarios
|
|
- Detailed error messages with timestamps
|
|
- Temporary file handling for error capture
|
|
- Proper cleanup of temporary files
|
|
- Error handling for all critical operations
|
|
|
|
3. Process Management:
|
|
- Lock file mechanism to prevent multiple instances
|
|
- Proper cleanup of lock file using trap
|
|
- Stale lock detection and cleanup
|
|
|
|
4. Input Validation:
|
|
- Parameter validation for numeric inputs
|
|
- Better argument parsing
|
|
- Clear help message with usage examples
|
|
|
|
5. Safety Features:
|
|
- Separate functions for snapshot creation and deletion
|
|
- Better status checking and error reporting
|
|
- Verbose logging option for debugging
|
|
- Dry-run mode improvements
|
|
|
|
6. Code Organization:
|
|
- Modular function design
|
|
- Clear separation of concerns
|
|
- Constants and configuration at the top
|
|
- Main function to orchestrate operations
|
|
- Better variable naming and scope management
|
|
|
|
To use the script:
|
|
|
|
1. Save it to a location like `/usr/local/sbin/proxmox-snapshot-rotation.sh`
|
|
2. Make it executable: `chmod +x /usr/local/sbin/proxmox-snapshot-rotation.sh`
|
|
3. Create the log directory: `mkdir -p /var/log/proxmox-snapshots`
|
|
|
|
You can run it with various options:
|
|
```bash
|
|
# Normal run
|
|
./proxmox-snapshot-rotation.sh
|
|
|
|
# Dry run with verbose output
|
|
./proxmox-snapshot-rotation.sh --dry-run --verbose
|
|
|
|
# Keep more snapshots and longer retention
|
|
./proxmox-snapshot-rotation.sh --keep 48 --retain-days 14
|
|
```
|
|
|
|
The script will create detailed logs in `/var/log/proxmox-snapshots/` and handle various error conditions gracefully. |