2

I have a global rsnapshot config file for all machines that we backup. The global file has

ssh_args -p 123

The machine specific files include the global config file and tries to override the port:

include_conf    /etc/rsnapshot-common.conf
ssh_args    -p 456

This does not work, I get the error:

global ssh_args can only be set once, but is already set. Perhaps you wanted to use a per-backup-point ssh_args instead.

So it knows what I want to do, but it doesn't tell me how to do it! The man page doesn't mention any way of doing this either. How do I change the port after its been set globally?

Nick
  • 4,503
  • 29
  • 69
  • 97

3 Answers3

7

The rsnapshot man page seems to imply that you add the per-backup-point arguments as a comma separated list after the destination, the example they give is

backup /var/ localhost/ one_fs=1

This is the same as the other examples, but notice the fourth column. This is how you specify per-backup-point options to over-ride global settings. This extra parameter can take several options, separated by commas.

so I guess you would use

backup /var/ localhost/ ssh_args=-p456
user9517
  • 115,471
  • 20
  • 215
  • 297
1

You can also set the port globally for that user inside the corresponding ~/.ssh/config:

Host example.com
Port 1234

That way it'd get picked up everywhere SSH-related and you won't have to manually specify it each time.

Not saying it's a better solution, just an alternative.

ᴍᴇʜᴏᴠ
  • 577
  • 1
  • 6
  • 20
0

rsnapshot.conf is a TAB-separated file, so the ssh_args can even contain spaces. Mine looks like this:

backup  root@HOSTNAME:/ HOSTNAME/   ssh_args=-p 2220 -i /ssh-id -o StrictHostKeychecking=no