Skip to main content

instantly sync data among home servers

Project description

Sync Servers

This is a lightweight server sync app designed for home servers. It instantly syncs changed files from one server to other servers, or perodically cron syncs.

A use case is to sync files to multiple servers without setting up cloud costly. This project is a component of my homeservers project, which leverage this to sync up my cam uploaded files to other servers.

Inotify is leveraged to monitor files changes, asynclcron is to run cron tasks, and rsync is to sync files.

The inotify recursive watch class has been moved/contributed to asyncinotify.

setup dev env

# in vscode terminal:
python3 -m venv venv
## reopen vscode terminal, venv should show
pip install asyncinotify
pip install asynclcron

unit test

## run test
python3 -m unittest

rsyncd

sudo cp tests/rsyncd/rsyncd.conf /etc/
sudo rsync --daemon --no-detach

test rsync command

rsync -avh --no-p --mkpath --timeout=6 --contimeout=3 /storage/source/live rsync://127.0.0.1/live

packaging and publish

rm -rf dist
python3 -m build
python3 -m twine upload dist/*

run syncservers

# in root folder
python -m syncservers.app

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

syncservers-1.0.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

syncservers-1.0.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file syncservers-1.0.1.tar.gz.

File metadata

  • Download URL: syncservers-1.0.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.2

File hashes

Hashes for syncservers-1.0.1.tar.gz
Algorithm Hash digest
SHA256 fcc8a836e722739b23c58c417b72952a1afb9fd55261c35b23bfa913f05622b1
MD5 b03887423ccbf73057298ea2f8b4941d
BLAKE2b-256 f26e2b1d3e0ef8e9a60d7dfdaf3325a1fd6592b48b209a7051f54f662fe4dbe8

See more details on using hashes here.

File details

Details for the file syncservers-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: syncservers-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.2

File hashes

Hashes for syncservers-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 66af8ea981cf8e6d12e6612d2c3a27a04f70df89151eb83becd3599ffa4219f8
MD5 183f967516d85197156af1cbd5fbe2c7
BLAKE2b-256 48e0f4fff126f9cbf8ca91d0539ef34b0bb77fb7e906a61ad5a60b3dca2ff97a

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