This project is a fully automated backup system that allows you to configure and execute various backup jobs, including file synchronization, snapshot creation, and reporting. The system logs job execution details, generates reports in HTML format, and optionally sends summary emails.
- Automated Backups: Supports file synchronization using
rsync
and snapshot creation with 7-Zip. - Job Scheduling: Define and execute multiple backup jobs with customizable configurations.
- Logging System: Logs can be printed to the terminal, written to a file, or both.
- HTML Reports: Generates an overview of executed jobs with job details.
- Email Notifications: Optionally send job reports via email.
- Database Storage: Uses SQLite to store job execution history.
Before running the system for the first time, initialize the SQLite database by executing:
python InitDB.py
This will create the necessary database structure for job logging.
Move all files from the HTMLDocuments
folder to the target directory where the generated HTML report will be stored. This path is specified in the standard report job configuration.
Adjust the logging settings in Config.ini
under the [LOGGING]
section. You can enable or disable terminal output, file logging, and debugging features as needed.
Navigate to the Jobs
folder and configure the .job
files:
- Each job file corresponds to a specific backup type.
- To create a new job, duplicate an existing
.job
file, modify the settings inside, and rename it. - The job filenames must follow this naming convention:
00-jobname.job
- The two-digit prefix determines the execution order.
- The job name can be freely chosen.
Once the configurations are complete, start the main script:
python main.py
This will execute all configured jobs in the specified order.
- Ensure all required dependencies are installed before running the system.
- The system is designed to be modular, allowing additional job types to be added easily.
- Job execution details will be stored in the SQLite database and can be accessed via the generated HTML reports.