Python wrapper to access and control an UrBackup server
Project description
Python UrBackup
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_urbackup-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9a2f8cb2c148a54e7be74b66c0a0deb767a4e4d32c3063070db7c662d04fe28 |
|
MD5 | f9e2e5915a7844a912b69396efcc6c01 |
|
BLAKE2b-256 | 0bdc7f4596dc5983c40128396254f82412d1fc424c6415754664a97f41bdfd95 |