Skip to content
A simple backup/sync tool with python & rsync
Python Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
pysync
tests
.gitignore
LICENSE
MANIFEST.in
Makefile
README.md
requirements.txt
setup.cfg
setup.py

README.md

pysync

pysync is a simple backup/sync tool with python & rsync.

日本語版ドキュメント

Installation

$ pip install itm.pysync

Usage

Create pysync.json file in ~/.config/pysync.json or ~/pysync.json.

Here is an example of pysync.json.

{
    // Set rsync options (default: -a -v -h)
    "rsync_options": ["-a", "-v", "-h", "--delete", "--iconv=UTF-8-MAC,UTF-8"],

    // Define rsync filters
    "filters": {
        "git": ["-C", "--filter", ":- .gitignore"]
    },

    // Set global exclusions to exclude files and directories in all backup sources
    "global_exclusions": [".DS_Store"],

    // Set destination directory path
    "destination": "/Volumes/HDD/backup",

    // Set backup sources
    "sources": [
        {
            "path": "/Users/whoami/Documents"
        },
        {
            "path": "/Users/whoami/Pictures",
            "exclusions": ["*.photoslibrary", "secrets/"]    // Specify exclusion patterns to exclude in the source
        },
        {
            "path": "/Users/whoami/Programs",
            "filter": "git"     // Use filter in the source
        }
    ]
}

Run pysync.

$ pysync

Command Line Options

Option Feature
-c, --config-file Indicate config file path (e.x. pysync -c ~/hoge/pysync.json)
-h, --help Show help
--version Show version

License

MIT License

Testing

Test with pytest.

$ pytest
You can’t perform that action at this time.