GB-TRANSFER-SERVIC(1)

NAME
gb-transfer-service - Synchronise guerillabackup backup data storages

SYNOPSIS

gb-transfer-service --Config file

DESCRIPTION

This is the manual page for the gb-transfer-service command. For more details see packaged documentation at /usr/share/doc/guerillabackup. The service has two main purposes: providing a stream-based protocol for interaction with other gb-transfer-service instances and application of storage and retrieval policies for data synchronisation.

The network part uses a local (AF_UNIX) socket to listen for incoming connections (see /run/guerillabackup/transfer.socket below). There is no authentication magic or likely-to-be-flawed custom-made crypto included in that part: any process allowed to open the socket can talk the protocol. For connectivity and authentication, use your favourite (trusted) tools. Good starting points are socat with OPENSSL X509 client/server certificate checks on one side and UNIX-CONNECT:/run/guerillabackup/transfer.socket for the other one. When using SSH to forward such connections, you should consider key-based authentication with command forcing (command="/usr/bin/socat - UNIX-CONNECT:/run/guerillabackup/transfer.socket") and default security options (restrict).

The policies are the other domain of the gb-transfer-service. They define the authorisation rules granting access to backup data elements but do NOT grant access to the remote file system as such or allow creation or restore of backups. That is the domain of gb-backup-generator tool. The policy also defines, which backup elements should be copied or moved to other storages. Each gb-transfer-service may have two polices: one defining, what should be sent to other instances (sender policy) and what should be received (receiver policy). Without defining a policy for a transfer direction, no data will be sent in that direction. Currently there are two predefined policies:

ReceiverStoreDataTransferPolicy: this policy attempts to create a copy of each file offered by a remote sender and keeps it, even after the sender stopped providing it. This policy is useful to fetch all files from a remote storage.

SenderMoveDataTransferPolicy: this policy offers all backup files in the local storage for transfer. Depending on the settings, files are deleted after sending or just flagged as sent after successful transfer.

A policy implements one of the policy interfaces, that are ReceiverTransferPolicy and SenderTransferPolicy. You may create a custom policy when the predefined do not match your requirements.

OPTIONS

--Config file
    This optional parameter specifies an alternative configuration file instead of /etc/guerillabackup/config.

FILES

/etc/guerillabackup/config
    The main configuration file for all guerillabackup tools. Use /etc/guerillabackup/config.template to create it. The template also contains the documentation for each available parameter. The most relevant parameters for gb-transfer-service are TransferServiceStorageBaseDir, TransferReceiverPolicyClass, TransferReceiverPolicyInitArgs, TransferSenderPolicyClass, TransferSenderPolicyInitArgs.

/run/guerillabackup/transfer.socket
    This is the default socket file name to connect two gb-transfer-service instances. The path can be changed by modification of "GeneralRuntimeDataDir" configuration property from default "/run/guerillabackup". By default, the socket is only accessible to privileged users and the user, who created it (mode 0600). You might change permissions after startup to grant access to other users also.

BUGS

For guerillabackup setups installed from packages, e.g. .deb or .rpm files usually installed via package management software, e.g. apt-get, aptitude, rpm, yast, please report bugs to the package maintainer.

For setups from unpackaged software trunk, please report at https://github.com/halfdog/guerillabackup/issues.

SEE ALSO

gb-backup-generator(1)

AUTHOR

halfdog <me@halfdog.net>
    Wrote this manual page.

COPYRIGHT
Copyright © 2016-2023 halfdog

This manual page was written for guerillabackup system on Linux systems, e.g. Debian.

Permission is granted to copy, distribute and/or modify this document under the terms of the Lesser GNU General Public License, Version 3.

On Debian systems, the complete text of the Lesser GNU General Public License can be found in /usr/share/common-licenses/LGPL-3.