2.6.3 • Published 7 years ago
rsynconfig v2.6.3
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.