Customisable file transfers using rsync
Project description
synchro
Customisable file transfers using rsync
About
Synchro is a simple python-based tool for customisable file movements, e.g. copying data to a backup server.
Synchro currently supports/includes:
- Transfer via ssh
- Archiving using tar (and option extraction)
- Option to only transfer data when a specific file is present
- Logging to file
To install
To install, you need a Unix-based system with Python (>=3.9) installed, and then:
pip install synchro
However, it is recommended to install conda (e.g. miniconda) first and create a new environment:
conda create --name synchro python=3.10
conda activate synchro
pip install synchro
If you don't have rsync installed, you will need to do so. E.g. on macOS it can be installed with homebrew:
brew install rsync
To use
synchro
has two modes of use on the command line, either with flags, or a config file.
Command line flags
Not yet implemented
Config file
The only input is the path to a source directory (the one being transferred).
synchro /path/to/config.conf
This source directory must contain a synchro.conf
file which contains the
information needed for the transfer. Including:
source
- Where the data comes from (contents of directory will be copied) e.g./path/to/source_directory
)destination
- Where to move the data to e.g./path/to/destination_directory
)tar
- Tar the data before copying? e.g.y
untar
- Untar the data after copying? e.g.y
create_dest
- Create the destination directory if it doesn't exist? e.g.y
transfer_ready_file
- A file that must exist in the source directory (or relative path) for the transfer to initative. This option is ignored if the line is missing fromsynchro.conf
.permissions
- Permissions for the destination file, in the chmod numerical format. e.g.777
. This option is ignored and defaults to770
if the line is missing fromsynchro.conf
.owner
- Username for ownership of the transferred files. This option is ignored and defaults to that of the source directory if the line is missing fromsynchro.conf
.group
- Group for ownership of the transferred files. This option is ignored and defaults to that of the source directory if the line is missing fromsynchro.conf
.
Example:
source = /path/to/source_directory
destination = /path/to/destination_directory
tar = y
untar = y
create_dest = y
transfer_ready_file = ready.txt
permissions = 777
owner = user1
group = staff
N.B. the destination can also be on a remote host (an ssh key must be set up), e.g.:
destination = user@IP:/path/to/destination_directory
To use with cron
N.B. This assumes you've installed in a conda environment
Example - running file transfers hourly (tested on CentOS)
- Create a text file in
/etc/cron.hourly
calledsynchro
cd /etc/cron.hourly
touch synchro
- Add
synchro
commands to the text file using the full path to the synchro executable
/home/user/miniconda3/envs/synchro/bin/synchro /path/to/config_1.conf
/home/user/miniconda3/envs/synchro/bin/synchro /path/to/config_2.conf
This will then try to backup the directories specified in config_1.conf
& config_2.conf
every hour.
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
File details
Details for the file synchro-0.0.3rc0.tar.gz
.
File metadata
- Download URL: synchro-0.0.3rc0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fd279f4cd329d1cf723f12bd67d0d34d58d0717ffed52a7943a102acc61713d |
|
MD5 | 391074405d10054c543ba19821b1c264 |
|
BLAKE2b-256 | 2117646ad7b3e4062b9043bf4fd5dffbf67079caa083a7235b4647170945ea7e |
File details
Details for the file synchro-0.0.3rc0-py2.py3-none-any.whl
.
File metadata
- Download URL: synchro-0.0.3rc0-py2.py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 133bc701f738b689a93cc596a5a47411877537fc4d9ce7f013c3ae0cb82f8c63 |
|
MD5 | e4e75b3b3fa4e9a23fa042318db5d2fe |
|
BLAKE2b-256 | d24d1be1a76efdeaee1dc47760ebee7bb61008131119e81b27f948c41167a796 |