rsynconfig
v2.6.3
Published
One config file for all rsync.
Downloads
5
Readme
rsynconfig
One config file for all rsync.
Installation
npm: npm i -g rsynconfig
yarn: yarn global add rsynconfig
make: make
> * uses npm under the hood*
Usage
Run
rsynconfig -h
for more information about CLI arguments
Create template '.rsynconfig.toml' file
rsynconfig init
Example
Edit or create .rsynconfig.toml
file into root of the project:
exclude = ['.rsync-filter']
[[destinations]]
name = 'sshtest'
src = './dir0/'
delete = false
flags = 'u'
[destinations.ssh.dest]
host = 'localhost'
user = 'lil'
path = '/dir1/'
key = './my.key'
[[destinations]]
name = 'localtest'
src = 'dir0/'
dest = 'dir1/'
delete = true
flags = 'dra'
Examples by others
- lil5 link
Please contact me I would love to have more examples.
Run synchronization
rsynconfig run localtest
# dry run
rsynconfig dry localtest
# name can be a glob to run multiple
rsynconfig run *test
# async run
# possibly handy for remote synchronization with large files
rsynconfig async localtest
# restore
# restore files from given dest to src
# delete is always false; flags is 'a'
rsynconfig restore localtest
Config file options
|name|type(s)|default|description|example value (.toml)|
|----|-------|-------|-----------|-------------|
|name
|String
||name of destination in destinations array|[[destinations]]
¬ name = 'test'
|
|src
|String
||local rsync source|src = '/media/$USER/data/test/'
|
|dest
|String
||local rsync destination|dest = '$HOME/test/'
|
|ssh.(dest/src).host
|String
||ssh host|[destinations.ssh.dest]
¬ host = 'localhost'
|
|ssh.(dest/src).user
|String
||ssh user|[destinations.ssh.dest]
¬ user = 'alex'
|
|ssh.(dest/src).path
|String
||ssh root path|[destinations.ssh.dest]
¬ path = '/www'
|
|ssh.(dest/src).key
|String
||ssh optional key|[destinations.ssh.dest]
¬ key = '$HOME/ssh.key'
|
|flags
|Boolean
|dr
|rsync flags|flags = 'au'
|
|delete
|Boolean
|false
|delete flag|delete = true
|
|exclude
|String
or Array
||exclude files|exclude = ['/A*']
|
|include
|String
or Array
||de-exclude files|include = ['/Anna']
|
|filter
|Boolean
|true
|searches for .rsync-filter
files|filter = true
|
|dry
|Boolean
|false
|rsync flags|dry = false
|
|chmod
|String
||permission of the files in the transfer|chmod = '+x'
|
Not Another Markup Language (NAML)
Using -c <filename>.<exten>
you can make your config file under the following extentions:
- json
- hjson
- json5
- cson
- yaml
- toml
- ini
Nodejs Module
const rsynconfig = require('rsynconfig')
rsynconfig(configFile, destinationsName, cwd)
.then((result) => {
// result.names[...]
// result.logs[...]
})
.catch(error => {
if (error) {
DEBUG
? console.error(error.message)
: console.error(error.stack);
}
// ..
})
Globals are used for log verbosity
global.DEBUG = true
global.QUIET = false
License
MIT.