60 lines
2.3 KiB
Markdown
60 lines
2.3 KiB
Markdown
This special remote type rsyncs file contents to somewhere else.
|
|
|
|
Setup example:
|
|
|
|
# git annex initremote myrsync type=rsync rsyncurl=rsync://rsync.example.com/myrsync encryption=joey@kitenet.net
|
|
# git annex describe myrsync "rsync server"
|
|
|
|
Or for using rsync over SSH
|
|
|
|
# git annex initremote myrsync type=rsync rsyncurl=ssh.example.com:/myrsync encryption=joey@kitenet.net
|
|
# git annex describe myrsync "rsync server"
|
|
|
|
## configuration
|
|
|
|
These parameters can be passed to `git annex initremote` to configure rsync:
|
|
|
|
* `encryption` - Required. Either "none" to disable encryption of content
|
|
stored on the remote rsync server,
|
|
or a value that can be looked up (using gpg -k) to find a gpg encryption
|
|
key that will be given access to the remote, or "shared" which allows
|
|
every clone of the repository to decrypt the encrypted data.
|
|
|
|
Note that additional gpg keys can be given access to a remote by
|
|
running enableremote with the new key id. See [[encryption]].
|
|
|
|
* `rsyncurl` - Required. This is the url or `hostname:/directory` to
|
|
pass to rsync to tell it where to store content.
|
|
|
|
* `shellescape` - Optional. Set to "no" to avoid shell escaping normally
|
|
done when using rsync over ssh. That escaping is needed with typical
|
|
setups, but not with some hosting providers that do not expose rsynced
|
|
filenames to the shell. You'll know you need this option if `git annex get`
|
|
from the special remote fails with an error message containing a single
|
|
quote (`'`) character. If that happens, you can run enableremote
|
|
setting shellescape=no.
|
|
|
|
The `annex-rsync-options` git configuration setting can be used to pass
|
|
parameters to rsync.
|
|
|
|
## annex-rsync-transport
|
|
|
|
You can use the `annex-rsync-transport` git configuration setting to choose
|
|
whether we run rsync over ssh or rsh. This setting is also used to specify
|
|
parameters that git annex will pass to ssh/rsh.
|
|
|
|
ssh is the default transport; if you'd like to run rsync over rsh, modify your
|
|
.git/config to include
|
|
|
|
annex-rsync-transport = rsh
|
|
|
|
under the appropriate remote.
|
|
|
|
To pass parameters to ssh/rsh, include the parameters after "rsh" or
|
|
"ssh". For example, to configure ssh to use the private key at
|
|
`/path/to/private/key`, specify
|
|
|
|
annex-rsync-transport = ssh -i /path/to/private/key
|
|
|
|
Note that environment variables aren't expanded here, so for example, you
|
|
cannot specify `-i $HOME/.ssh/private_key`.
|