Skip to main content

Customisable file transfers using rsync

Project description

Python Version PyPI Downloads Wheel Development Status Tests Coverage Status Code style: black

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 from synchro.conf.
  • permissions - Permissions for the destination file, in the chmod numerical format. e.g. 777. This option is ignored and defaults to 770 if the line is missing from synchro.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 from synchro.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 from synchro.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 called synchro
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synchro-0.0.3rc0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

synchro-0.0.3rc0-py2.py3-none-any.whl (15.9 kB view details)

Uploaded Python 2 Python 3

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

Hashes for synchro-0.0.3rc0.tar.gz
Algorithm Hash digest
SHA256 3fd279f4cd329d1cf723f12bd67d0d34d58d0717ffed52a7943a102acc61713d
MD5 391074405d10054c543ba19821b1c264
BLAKE2b-256 2117646ad7b3e4062b9043bf4fd5dffbf67079caa083a7235b4647170945ea7e

See more details on using hashes here.

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

Hashes for synchro-0.0.3rc0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 133bc701f738b689a93cc596a5a47411877537fc4d9ce7f013c3ae0cb82f8c63
MD5 e4e75b3b3fa4e9a23fa042318db5d2fe
BLAKE2b-256 d24d1be1a76efdeaee1dc47760ebee7bb61008131119e81b27f948c41167a796

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page