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.yuntar- Untar the data after copying? e.g.ycreate_dest- Create the destination directory if it doesn't exist? e.g.ytransfer_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 to770if 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.hourlycalledsynchro
cd /etc/cron.hourly
touch synchro
- Add
synchrocommands 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.
Metadata
Release files for synchro 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| synchro-0.0.3.tar.gz | 16.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synchro-0.0.3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 31.9 kB
Release files / synchro-0.0.3.tar.gz
| Download URL | synchro-0.0.3.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
288b1194f6be8635c84c249ecbd76bda7bdc1756d7e760362af79c7d4d5a3dba
|
|
BLAKE2b-256 checksum How to use checksums |
8a2b9ba7239964dddd5ad0ed0e77f5f392230e9befe44be3520b318f844dec1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / synchro-0.0.3-py2.py3-none-any.whl
| Download URL | synchro-0.0.3-py2.py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
30370ab9de563c26a5c9d12187f3695223aae236b59e2c6ab28f00a25e0e9c4f
|
|
BLAKE2b-256 checksum How to use checksums |
786ae94d1138878cac8928393d68c4cbf9f5641a6b5d6c5911695c1695e85325
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Security for synchro 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.