[Dirvish] ssh problem with pre-client & rsync server
dhoworth at mrc-lmb.cam.ac.uk
Mon Jun 6 03:20:09 PDT 2005
I'm trying to use dirvish to back up a machine that's running mysql and
I'm having a problem with ssh login.
Before installing mysql, I already set up dirvish to back up the machine
using an rsync server; that's been working fine for a while. I've now
installed mysql and to make sure that I get a clean dump of the database
I need to send a remote command before rsync runs:
I've added this to my default.conf (see below for details).
This is failing in my dirvish-runall with an ssh error:
04:36:56 dirvish --vault suse3-root --image-time "22:00"
Permission denied (publickey,keyboard-interactive).
suse3-root:default pre-client failed (65280)
I have set up ssh to use id_rsa and can run ssh from the command line
without a problem (suse1 is the backup server, suse3 is the backup
client/mysql server). For example:
suse1# ssh suse3 date
Mon Jun 6 10:22:48 BST 2005
But if I run dirvish from the command line I am prompted for a password:
suse1# dirvish --vault suse3-root -image test
Using ps I can see the command that dirvish is trying to run:
root 2715 2713 0 10:26 pts/1 00:00:00 sh -c ssh
backup at 192.168.2.2 ' DIRVISH_SERVER=suse1
DIRVISH_CLIENT=backup at 192.168.2.2 DIRVISH_SRC=:root
DIRVISH_IMAGE=suse3-root:default:test /etc/init.d/mysql stop'
The problem appears to be that dirvish is trying to run the ssh command
using the rsync server username, which is pretty arbitrary but
deliberately different from any valid linux username on the client
machine and especially not root! OTOH, ssh needs a valid linux username,
The only option I can see in the dirvish.conf doc is 'rsh' but when I add:
rsh: ssh -l root
to my default.conf, the ssh command is transformed to nonsense:
sh -c ssh -l root backup at 192.168.2.2 ' DIRVI...<snip>
Has anybody else come across this issue? Have I missed some other way to
configure this to work? Or is it time to dive into the code?
My default.conf is:
# Vault Config file for dirvish backup of suse3
# this is the rsync username at host combination for the rsync server
# NOT a linux username
client: backup at 192.168.2.2
# colon at start of tree tells dirvish to contact a remote rsync daemon.
# tree value is actually an rsync 'module' name, NOT a filesystem path.
# Make sure mysqld is shut down whilst we take the backup
rsh: ssh -l root
pre-client: /etc/init.d/mysql stop
post-client: /etc/init.d/mysql start
# Last rule that matches applies.
# Sun = 1, Sat = 7 !!
# MIN HR DAY-OF-MONTH MONTH DAY-OF-WEEK STRFTIME_FMT
* * 2-31 * 1-5,7 +1 week
* * * * 6 +2 months
* * 1 * * +1 year
More information about the Dirvish