Skip to content

judahpaul16/python-urbackup

Repository files navigation

Python UrBackup urbackup.org

PyPI PyPI - Python Version GitHub Actions Workflow Status Coverage Status Documentation Status

Python UrBackup is a powerful Python wrapper designed to interact with UrBackup servers. This library allows you to manage backups, restore operations, and monitor the server status programmatically.

Originally urbackup-server-web-api-wrapper

Installation

Install with:

pip install python-urbackup

Usage

Initialization

Create an instance of the urbackup_server by specifying the server URL, username, and password. Replace 'your_server_url', 'your_username', and 'your_password' with your server details:

from urbackup import urbackup_server

server = urbackup_server('your_server_url', 'your_username', 'your_password')

Logging In

To perform any operations, you need to log in:

if server.login():
    print("Login successful!")
else:
    print("Login failed!")

Getting Client Status

Retrieve the status of a specific client:

client_status = server.get_client_status('client_name')
if client_status:
    print(f"Client status: {client_status}")
else:
    print("Client not found or access denied.")

Downloading an Installer

To download an installer for a new client, specify the file path and the client's name:

if server.download_installer('path/to/installer', 'new_client_name'):
    print("Installer downloaded successfully.")
else:
    print("Failed to download installer.")

Starting Backups

You can start different types of backups for a client. Here are examples of starting an incremental file backup and a full file backup:

if server.start_incr_file_backup('client_name'):
    print("Incremental file backup started successfully.")
else:
    print("Failed to start incremental file backup.")

if server.start_full_file_backup('client_name'):
    print("Full file backup started successfully.")
else:
    print("Failed to start full file backup.")

Managing Clients

Add a new client to the server:

new_client = server.add_client('new_client_name')
if new_client:
    print("New client added:", new_client)
else:
    print("Failed to add new client.")

List clients with no file backup in the last three days:

import urbackup
import time
import datetime
server = urbackup.urbackup_server("http://127.0.0.1:55414/x", "admin", "foo")
clients = server.get_status()
diff_time = 3*24*60*60 # 3 days
for client in clients:
    if client["lastbackup"]=="-" or client["lastbackup"] < time.time() - diff_time:

        if client["lastbackup"]=="-" or client["lastbackup"]==0:
            lastbackup = "Never"
        else:
            lastbackup = datetime.datetime.fromtimestamp(client["lastbackup"]).strftime("%x %X")

        print("Last file backup at {lastbackup} of client {clientname} is older than three days".format(
              lastbackup=lastbackup, clientname=client["name"] ) )

For more information, please refer to the API Reference.

UrBackup CLI

The UrBackup CLI is a command-line interface that allows you to interact with the UrBackup server from a client machine.

Important Note: For Windows the command-line tool is urbackupclient_cmd. Mac and Linux use urbackupclientctl.

CLI options for urbackupclientctl and urbackupclientctl are as follows:

USAGE:

        urbackupclientctl [--help] [--version] <command> [<args>]

Get specific command help with urbackupclientctl <command> --help

        urbackupclientctl start
                Start an incremental/full image/file backup

        urbackupclientctl status
                Get current backup status

        urbackupclientctl browse
                Browse backups and files/folders in backups

        urbackupclientctl restore-start
                Restore files/folders from backup

        urbackupclientctl set-settings
                Set backup settings

        urbackupclientctl reset-keep
                Reset keeping files during incremental backups

        urbackupclientctl add-backupdir
                Add new directory to backup set

        urbackupclientctl list-backupdirs
                List directories that are being backed up

        urbackupclientctl remove-backupdir
                Remove directory from backup set

For more information, please refer to the UrBackup Administration Documentation.

Contributing 🤝

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

License 📃

This project is licensed under the Apache License - see the LICENSE file for details.

About

Python wrapper to access and control an UrBackup server

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages