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.
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 | |
|---|---|---|---|
| synchro-0.0.3.tar.gz | 16.0 kB | 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
|