Snapshots

A snapshot is a copy of data at a particular point in time.

Create

Snapshots can be created using the Create button in the toolbar. You can also press CTRL+N on your keyboard, or select the action from the menubar (Profile > Create).

Snapshots can be created using the Create button in the toolbar. You can also select the action from the file menu (FileMenu > Snapshot > Create), or press CTRL+N on your keyboard.

create

Progress is displayed in a progress window.

create_2

create_3

After the snapshot is created, click OK to return to the Main window, or click Compare to compare the new snapshot with the previous one.

  • In you prefer the default progress bar from your system theme, then select the option Use normal progressbars from the Settings window.
  • The progress window will close after the snapshot is created. Select the checkbox Keep open to keep the window open and view the final summary after the snapshot is created.
  • If you have any previous snapshots, the Compare button will be enabled. Click the button to view changes between the new snapshot and the previous one.

The new snapshot will be visible in the list of snapshots on the main window. Snapshots are listed in descending order with newest snapshot at the top.

You can click the Comments column to enter a comment. Commented snapshots are protected from removal by the Prune action which removes old snapshots. Commented snapshots will always be kept unless it is removed manually.

create_5

Notes

  • You can create a new snapshot using the toolbar button, or by enabling the scheduled task in profile settings, or by executing the command baqpaq create -p <profilename> from a command window.

Tip

The create action can be cancelled or terminated at any time without issue. Changes are not committed to the repository till the action is complete.

Remove

Snapshots can be removed using the Remove button in the toolbar. You can also press DELETE on your keyboard, or select the action from the menubar (Profile > Delete).

delete_2

Comfirm the snapshots to remove and click Delete

delete_3

Click OK to return to the Main Window.

Prune

Pruning backups will remove old snapshots based on the retention policy defined in profile settings. Click the button Edit Profile and go to section Prune.

prune

prune_2

Select the number of snapshots to keep for each backup level, and click OK to return to the Main Window.

The profile can be pruned using the Prune button in the toolbar. You can also select the action from the menubar (Profile > Prune).

prune_3

A list of snapshots will be displayed with Action as Keep or Delete based on the policy. Click the Prune button to execute the action.

prune_4

prune_5

Click OK to return to the Main Window.

  • Snapshots not matching retention policy will be removed when profile is pruned.
  • You can prune the profile using the toolbar button, or by enabling the scheduled task in profile settings, or by executing the command baqpaq prune -p <profilename> from a command window.

Tip

Keep less number of older snapshots and more number of newer snapshots. You are more likely to need a newer snapshot in case of an issue (if you accidentally delete a file for example).

Validate

Snapshots can be checked for consistency using the Validate button in the toolbar. You can also press CTRL+SHIFT+V on your keyboard, or select the action from the menubar (Profile > Validate).

validate

Data in backup repository will be checked for consistency. Click OK to return to the Main Window.

validate2

Notes:

  • Profile should be validated after moving the backups to a new location. It will check for data corruption and any other problems.
  • You can also run this action by running the command baqpaq validate -p <profilename> from a command window.

Tip

Since this is a slow operation it is recommended to run this once a month as a scheduled task (Profile Settings > Schedule > Validate). It will run in the background at the scheduled time and you can check the logs later from the Log window.

Sync

Backups can be synced to a remote machine using Rsync, or to a path on the local file system. Open the Profile Settings window and go to the section for Sync.

Sync to Remote Machine

Backups can be synced to a remote machine on the local network. This is done using Rsync over SSH protocol. Rsync must be installed on the remote machine for this to work. Rsync copies data efficiently by comparing files on the remote machine, and transferring only new or modified data.

sync_remote

  • Host IP or Domain: Enter the host machine IP address (like 10.41.0.100) or domain name (like yourdomain.com)
  • Remote User: Enter remote user name. This should be a valid user on the remote machine. This user must have write access to the remote path on the remote machine.
  • Port: Enter port number. This is 22 by default for SSH.
  • Destination Path: Enter destination path on remote machine where backups will be saved. This can be an absolute path (starting with /) or a relative path (not starting with /). The remote user must have write access to this path on the remote machine. Relative paths are recommended since they are located in the remote user’s home directory where the user has write access.
  • SSH Key: Select the SSH key to use for connecting to the remote machine, or leave it blank to try all available keys. Click the Add button to generate a new key.

sync_create_ssh_key

Note

Password authentication is not supported since scheduled tasks need to run non-interactively. Set up public key authentication for the remote machine.

Setting up public key authentication

Tip

You can set a bandwidth limit for Rsync to limit the amount of bandwidth that is used by the app. For example, if your home network has a bandwidth of 20 MB/s you can set the limit to 15 MB/s to leave some bandwidth available.

Sync to Local Path

Backups can be synced to a path on the local machine using Rsync. Select [ Local Path ] from the drop-down and select the path where backups should be synced. If you are running Baqpaq with your own user account then you must have write access to this path.

Tip

Syncing backups to a local path is useful if you have a network share or cloud storage account that is mounted to a local path on your machine.

sync_local

Upload

Backups can be uploaded to a cloud storage account using Rclone. Open the Profile Settings window and go to the section for Upload.

upload_options

Creating Remote Connections

Rclone is a free and open-source tool for synching data to cloud storage accounts. If you have any existing Rclone remotes, they will be listed in the dropdown. If you are using Rclone for the first time, click the + button to add a new remote.

upload_rclone_dropbox

Enter a name for the remote connection and select the account type.

Note

Baqpaq provides an option to create connections for DropBox, Box, and Google Drive. To create connections for other storage providers, run the command rclone config in a command window and follow the prompts. After the connection has been created, it will be visible in the drop-down for selecting the destination.

Click Create to continue.

upload_rclone_dropbox_message

upload_rclone_authorize

upload_rclone_authorize_complete

Close the web browser window (or Tab) and return to the Baqpaq window.

You will get a message if the connection was created successfully.

upload_rclone_success

The new remote connection will be visible in dropdown. Select the connection and enter the path where backups will be uploaded. Click OK to save changes to profile and return to the Main window.

Note

If your web browser is already open, the authorization page may open in a new tab of your browser instead of opening in a new window. If this happens, go to the new tab in your web browser, authorize Rclone to access the account, and close the browser tab to finish.

Uploading Backups

Backups can be uploaded by clicking the Upload button in the toolbar.

Wait for the upload to complete and click OK to return to the Main Window.

upload_rclone_progress_complete

Notes

  • Rclone supports more than 40 cloud storage accounts. Run rclone config in a command window to add, edit or delete remote connections. Refer to the Rclone documentation for more information.
  • Profile will be in locked state while upload is in progress. Any scheduled tasks that run while the profile is locked will fail with an error.
  • You can upload the profile using the toolbar button, or by enabling the scheduled task in profile settings, or by executing the baqpaq upload command from a command window.

Note

Uploading backups will sync the contents of backup directory to a sub-folder in the destination path (<destination-path>/<profile-id>). Extra files in the sub-folder will be deleted.

This sub-folder is created for safety, to avoid any accidental deletion of existing files in the destination path.

Mount

Baqpaq uses BorgBackup as the storage backend. Borg stores the files in a opaque format in a data repository. To view the files and folders inside the repository, it needs to be mounted to a temporary path.

Double-click any snapshot in the list to mount the snapshot and browse the contents in a file manager.

mount_snapshot_2

mount_snapshot_folder

Copy any files and folders that you need and unmount the snapshot when you finish. Click the Unmount button to unmount the snapshot and return to the Main Window.

Note

The filesystem mounted in the temporary folder is virtual and read-only. The contents cannot be modified.

Caution

The profile will be in a locked state while snapshots are mounted. Scheduled tasks will fail if it runs while the profile is locked.

Compare

To compare any two snapshots, select the snapshots in the list, right-click, and select Compare.

compare_main

Changes between the 2 snapshots will be displayed in a 2-pane tree view. The older snapshot is displayed on the left-hand side, and newer snapshot on the right-hand side.

compare_view

Compare changes in text files

To compare changes in text files, right-click the file and select Compare. This will open the file in a text comparison tool like Meld, Diffuse, or Beyond Compare.

compare_item

compare_item_meld

Exclude items from future snapshots

To exclude an item from future snapshots, right-click the file or folder and select Exclude. This will add the path to the list of Exclude filters for the profile.

compare_exclude

Click the Exclude button in the top-right to view and edit the list of Exclude filters for the profile.

compare_filters

Caution

The selected snapshots will be mounted for comparing the contents. The profile will be in a locked state while snapshots are mounted. Scheduled tasks will fail if it runs while the profile is locked.

Extract

To extract the contents of a snapshot click the Extract button in the toolbar. You can also press CTRL+E on your keyboard, or select the action from menubar (Snapshot > Extract).

extract_toolbar

Select a single snapshot to extract.

extract_select

Extract to new path (Recommended)

Select the path where snapshot will be extracted. It is recommended to extract files to a new folder instead of restoring to original paths.

extract_options

Extract to original path

You can also extract files to their original path. Existing files and folders will be replaced without warning. Extra files in the original path that are not in the snapshot will not be deleted.

Caution

Please use this option at your own risk. Existing files will be replaced with older files from the snapshot.

Click ‘Extract’ to extract the snapshot.

extract_progress

Schedule

Scheduled tasks can be created for a profile from the profile settings. Click the button Edit Profile and go to section Schedule .

profile_schedule

  1. Select the action for which you wish to create a task. For example, select the “Create” tab for creating a snapshot at a scheduled time.
  2. Click the switch for “Enable scheduled task”.
  3. Select the time (or frequency) when the task should run.
  4. (Optional) Enter the command (or shell script) to run before the snapshot is created
  5. (Optional) Enter the command (or shell script) to run after the snapshot is created

Examples

Some examples are given below.

Daily at 6:30 AM, on weekdays (Monday to Friday)

schedule_fixed

Hourly, every 6 hours, every day of the week (At 12am, 6am, 12pm, 6pm):

schedule_hourly

Hourly, at the 5th minute, every day of the week:

schedule_hourly

Weekly at 6:00 AM, on Sunday:

schedule_weekly

Monthly at 8:00 PM, on the 10th of every month: schedule_monthly

Every 10 minutes, every day of the week:

schedule_minutely

Tip

Snapshots can be created as freqently as needed. If the files have not changed, the extra snapshots will not use any disk space.

Custom Schedules

Scheduled tasks are created with cron. You can create your own cron jobs or systemd timers by calling baqpaq on the command line.

For example,

# create
baqpaq create -p "My Documents" --batch

# prune
baqpaq prune -p "My Documents" --batch

# validate
baqpaq check -p "My Documents" --batch

# sync
baqpaq sync -p "My Documents" --batch

# upload
baqpaq upload -p "My Documents" --batch

Tip

Tasks that are scheduled from the GUI are scheduled using Cron, for compatibility with all Linux distributions (even those distributions that don’t use SystemD). If you wish to use SystemD timers, disable the tasks in the GUI, and create SystemD units for the actions that you want to execute.

Tip

Pass the --batch option to Baqpaq when you execute it from a script. This will disable any interactive prompts and progress bars.