In today’s digital age, data backup is essential to ensure the security and integrity of valuable information. With the plethora of backup solutions available, it can be challenging to find the right tool that prioritizes simplicity, reliability, and data integrity. Enter BackuPy, a Python backup program specifically designed to address these needs.
Features
BackuPy offers several robust features that make it a reliable backup solution:
- Backup, Mirror, and Sync Modes: Choose the mode that best suits your needs, whether it’s copying files solely from the source to destination (Backup mode), including deletion of destination-only files (Mirror mode), or bidirectional file synchronization (Sync mode).
- File Comparison: BackuPy provides different modes to detect file changes, including comparing file attributes such as size and last modified time (Attribute mode), recording CRCs for changed files (Attribute+ mode), and checking file attributes and CRCs to detect corruption (CRC mode).
- Transparent Behavior: BackuPy follows the principle of least astonishment, making backup behavior between directories clear and predictable. You’ll have a clear understanding of file status and how they will be handled during execution.
- Extensibility: BackuPy is easily extensible with other backends, thanks to its well-designed architecture. You can easily extend its low-level functions for file operations to meet your specific requirements.
Design Goals
BackuPy was built with specific design goals in mind to ensure the best user experience and data protection:
- Future-Proof and Verifiable Backups: BackuPy uses file-based increments and human-readable database/log files, ensuring that backups remain future-proof and easily verifiable, even without the program itself. This approach allows for easy parsing and understanding of the backup data.
- Simplicity and Easy Verification: BackuPy’s codebase is simple and easy to verify, ensuring predictable and reliable operation. With only three functions that touch your files, clarity and reliability are guaranteed. Trustworthy dependencies are used to ensure the program’s stability and security.
- Principle of Least Astonishment: BackuPy’s backup behavior is designed to be clear and intuitive. Users can expect a transparent and obvious understanding of file handling during the execution of the program.
- Avoiding Feature Creep: BackuPy focuses on its core functionality and avoids duplicating features found in other programs. It does not include delta-transfer, network storage or FUSE support, backup encryption, or filesystem monitoring. This deliberate choice allows BackuPy to remain lightweight and focused on core backup operations.
- Easy Extensibility: BackuPy’s architecture allows for easy extension with other backends. With well-defined low-level functions for file operations, you can easily tailor BackuPy to your specific needs.
Usage Description
Using BackuPy is straightforward and flexible. Here are some key aspects of using BackuPy:
- Source and Destination Directories: BackuPy allows you to use any directory accessible via the computer’s file system as the source and destination directories.
- Main Modes: Choose between Backup mode, Mirror mode, or Sync mode to determine how new and deleted files are handled during the backup process.
- Selection Modes: BackuPy offers different selection modes to handle cases where different versions of a file exist on both the source and destination. Choose between Source mode, Destination mode, Newer mode, or None mode to select the appropriate file version.
- Compare Modes: Select the compare mode that suits your needs, whether it’s comparing file attributes, calculating CRCs for new and changed files, or checking CRCs for every file to detect corruption.
- Test Options: Use the
--dry-run
flag to test your options before executing the backup process. - Notification and Confirmation: BackuPy notifies you of any changes, unexpected modifications, sync conflicts, or file corruption before prompting you to continue, cancel, or skip selected files. You can use the
--noprompt
flag to complete the run without any prompts. - Backup Archiving: By default, BackuPy archives overwritten files to ensure data safety. You can disable archiving with the
--noarchive
flag.
Configuration File
BackuPy offers a configuration file that allows you to customize the program’s behavior and store settings for future use. The configuration file, config.json
, contains all the options available in the command line interface, along with additional settings.
You can specify unique IDs for source and destination directories, define archive, log, trash directories, and configure various options such as root alias log, stdout status bar, verbosity, log writing, and color output.
Building from Source
If you prefer to build BackuPy from source, it’s a straightforward process. Run tests using the provided command, python setup.py test
. To build a Python package, use python setup.py sdist
. If you’re interested in building an executable with a GUI using Gooey, refer to the provided command, pyinstaller build.spec
. Additional packaging options are available for Windows using Inno Setup.
Get Your Data Safe with BackuPy
In conclusion, BackuPy provides a simple, reliable, and future-proof backup solution for ensuring the integrity and security of your valuable data. With its transparent behavior, flexible options, and customizable configuration, BackuPy empowers users to tailor their backup operations to specific requirements. Give BackuPy a try and experience data backup with confidence.
Disclaimer: BackuPy is open-source software distributed under the GNU General Public License. Please refer to the license for more information on conditions and warranties.
References:
– BackuPy GitHub Repository: https://github.com/elesiuta/backupy
– Arch Linux Wiki: Synchronization and backup programs – https://wiki.archlinux.org/index.php/Synchronization_and_backup_programs#File-based_increments
Tags: Backup, Data Integrity, Python, File Comparison, File Management
Leave a Reply