Synchronize files through the sneakernet
Project description
Sneakersync
Synchronize files through the sneakernet, i.e. using a removable drive.
Requirements:
- rsync. The version must support extended attributes (
-X
flag). - A removable drive with a filesystem matching the source and target computers.
- Feet or a compatible mean of transportation of the removable drive between computers.
Installation
Simply run pip install sneakersync
.
Configuration
The configuration is a YAML-formatted file that contains modules (directories to be synchronized) and filters (rules that exclude or include files or directories). Each module must contain a root entry (the top-level path to be synchronized) and may contain filters; if no filter is specified, all files and directories below the root of the module are included. Filters are defined by a list of include or exclude directives.
A minimal example which synchronizes the home folder of a user would look like:
modules:
- root: /home/john.doe
To exclude a directory (and its content) and files with a given extension from a module, add a filters directive:
modules:
- root: /home/john.doe
filters:
- exclude: /home/john.doe/.firefox/caches
- exclude: *.pyc
To filter entries from all modules, use the top-level filters directive:
modules:
- root: /home/john.doe
- root: /home/jane.blogs
filters:
- exclude: .firefox/caches
Filters defined at the top-level will have priority over module-level filters.
Usage
- Create a filesystem on a removable drive that matches the source and target computers.
- Optional, but highly recommended: encrypt your removable drive.
- Store the configuration in a file named
sneakersync.cfg
on the root of the drive. - To send data, run
sneakersync send <PATH_TO_YOUR_DRIVE>
. - Move your drive to the other computer and plug it in.
- To receive data, run
sneakersync receive <PATH_TO_YOUR_DRIVE>
.
Known limitations:
- The last access time (
atime
) is not preserved: rsync needs to access files in order to transfer them. - The creation / meta-data change time (
ctime
) is not preserved: this attribute is not user-modifiable.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for sneakersync-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b1a34b4dc59e9693ad201bd0006d278e8ffad8cd6229f0d93d8c0194722f5bb |
|
MD5 | ec98a289fd98d1cfefa20baa3678af6f |
|
BLAKE2b-256 | 020ec7bf7202aa58d63d0b98c44a527a66fc20b9e7be45ba18fb0df30a9b09c8 |
Hashes for sneakersync-1.2.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 160e48a637cb385683174a6a4b7c200775e76e10fab265b76f43f05d5b1f6cb9 |
|
MD5 | 0068836458bd1e5a3ba088563896ebcd |
|
BLAKE2b-256 | fe703f29234f7547758a66fbfdca95603f79104807428fef7bb4b742444868a9 |