Skip to content

DaniilGalahov/RobustBackupSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robust Backup System

RBS logo

Summary

This app purposed for robust but agile automatic backup of data in Windows environment. App allows you to save your data, packed as .zip archive, into a directories you declared in configuration files of repositories. Periods od backups and amount of copies are configurable same way.

App is standalone, lightweight, tested, and freeware.

Installation

Requirements

  • Windows 7/8/10/11
  • Enough HDD space (app making big temporary files, comparable by size with your data to backup).

Downloading

Actual release can be downloaded at Releases page.

Setting up

  • Extract distribution archive of the app to a folder

Configuration

Main settings

Main settings of app provided in .\config.ini in a root directory of the app.

Here is the contents of the config file, with comments describing a purpose of each of parameter:

[ARGUMENTS]		; Configuration key, MUST NOT BE CHANGED.
repo = repo		; Relative/absolute path to directory with configuration files of repositories.
temp = temp		; Relative/absolute path to temporary working directory of the app. Must be on disk with enough space!
log = True		; Enables/disables the logging.

Settings can be reset to defaults with a special command, described in Usage->Command prompt options

Respoitory settings

Settings of backups (what to backup, when and how often) are stored into .\repo\ folder in a root directory of the app. Configuration organized with an .ini configuration files.

This configuration files describes to system all parameters of the backup process.

Here is an example of contents of such configuration file, with comments describing a purpose of each of parameter:

[BACKUP REPO NAME]						; Repo name (for consistency)
source_directory=D:\Dev\Sources			; Source directory. System will read and backup all contents of this folder.
backup_directory=E:\Backup\Sources		; First backup directory. Here will be placed first backup copy.
backup_update_period=1					; Period (in days) after which system will add new backup copy of data from source dir to first backup dir.
backup_max_number=3						; Number of backup copies kept in first backup dir. With this settings, 3 latest copies.
remote_directory=\\NAS\Backup\Sources	; Second backup directory. Here will be placed second backup copy.
remote_update_period=3					; Period (in days) after which system will add new backup copy of data from source dir to second backup dir.
remote_max_number=2						; Number of backup copies kept in second backup dir. With this settings, 2 latest copies.

Additionally, you can find an example of contents of configuration in a file .\repo\example.txt.

For each repository required to backup, you need to create separate .ini file with settings.

Hints
  • to disable backup into a folder, set update period high enough (say, 9999 days)
  • to keep all the backup copies in a folder, set max number high enough (say, 9999 copies)

Usage

Run app (with Command Prompt, PowerShell, or just with double click) to start backup.

Command Prompt options

App can being launched with options, providing additional way of control to users. Here is basic usage:

rbs.py [-h] [-r REPO] [-t TEMP] [-l LOG] [-s] [-d]

Optional arguments:
  • -h, --help --- show help message and exit
  • -r REPO, --repo REPO --- set REPO string as path to directory with repository config files
  • -t TEMP, --temp TEMP --- set TEMP string as path to temporary working directory
  • -l LOG, --log LOG --- enable/disable logging of backup events
  • -s, --save --- save current configuration to file config.ini
  • -d, --default --- restore default configuration and exit app

Important

  • Command Prompt options have higher priority than parameters from .\config.ini.
  • Those parameters which are not set by optional arguments will be loaded from .\config.ini.
  • By default, parameters from the arguments will not be saved in .\config.ini. Use -s key to save settings.
Logging

If logging enabled in configs, the app will log its operations on console screen and in file .\RBS.log.

Backup scheduling

Use any task scheduler (for example, Task Scheduler, nnCron or any other) to configure scheduled run of the app. This will allow RBS to make backups automatically.

Warning

Be responsible and careful during configuring and operating this application. Incorrect respoitory settings settings or abnormal termination of the app can damage your backups.

Developer notice

Requirements

  • Python 3.9.13
  • pyInstaller

Questions

Feel free to ask me through PM if you have any questions or offers.

Legal notice

This software is distributing under MIT/BSD-like license. Full terms are available in the License file.

Logo image of Robust Backup System was generated by ChatGPT 5.1. App icon was created from logo image using PNG-to-ICO.

Packages

 
 
 

Contributors