Drobo

rsync over SSH (in and out)

As part of my backup process, I’d like to be able to run rsync over ssh connections inward and outward from my DroboFS.

I’ve installed dropbear and rsync, but I’m left with two problems.

Incoming:

For incoming rsync over ssh transfers, the rsync executable needs to be in the path for incoming ssh connections. By default this isn’t true, and adding rsync to the path via .profile doesn’t work since .profile is only read for interactive shells.

I’ve worked around this by adding a symlink from /bin to /mnt/DroboFS/Shares/DroboApps/rsync/rsync, but it seems like it would be better to solve this in the rsync DroboApps package. Is this possible?

Outgoing:

As far as I can figure out, the DroboApps version of DropBear doesn’t include any outgoing SSH client. Is this true? Why not?

PS: For bonus points, what’s the best way to disable the rsync daemon? I have no need of it, only the rsync command line program.

I was able to rsync in using the below arg from the remote host:

–rsync-path=/mnt/DroboFS/Shares/DroboApps/rsync/rsync

The problem I seem to have is it always asks for a password. Is it possible to script this so the prompt does not kill an automated backup script?

Got the same problem and a solution:

This requires: Dropbear SSH Server

  1. Download the file in this post of the forum:

Dropbear SSH Clients 0.52

  • or-

simply click:

Download Dropbear SSH Clients 0.52

  1. Unpack the file and put it into the DroboApps/dropbear folder on your Drobo FS.

  2. Open the Drobo Shell with your preferred SSH-Client and type:

[code]# cd Shares/DroboApps/dropbear/

chmod 777 dbclient dropbearconvert dropbearkey

mv dbclient dropbearconvert dropbearkey /bin[/code]

  1. Now you may type:
# dbclient user@server

anywhere in Drobo Shell to establish an SSH-Connection.

If you want to use

# ssh user@server 

you may type:

# cp /bin/dbclient /bin/ssh

Please tell me if it works or not! It works just fine here!

Description is here

After copying rsync to /bin

# cp Shares/DroboApps/rsync/rsync /bin

I was able to execute rsync with the following command:

# rsync -avzr -e "dbclient -i .ssh/id_rsa.pub" user@host:folder Shares/Public

… without any need of a password. Perfect to use in an automated script.

You can also rsync in deamon mode by using an extra : in the command. This does not require moving or linking the rsync executable to /bin. For example:

# rsync -avzr -e "dbclient user@host::drobofs/RelativePath

Instead of using a shell connection it connects to the deamon directly. There are a few caveats. First it will now matter how you set up your rsyncd.conf file. You will need to create a “share” like in the samba sense for the parts of the file system you want to connect to. Then the rest of the path is relative to the share path. The shares or modules I believe they are called must be made r/w by setting:

uid = root
gid = root
pid file = /mnt/DroboFS/Shares/DroboApps/rsync/rsyncd.pid

[drobofs]
    path = /mnt/DroboFS/Shares
    comment = DroboFS Share
    read only = no

In each. There is also a problem with the service.sh script included with this DroboApp. It does not remove the rsyncd.pid on startup and will cause the deamon to fail with a message if you reboot your drobo. I fixed this by editing rsyncd/service.sh to include this line in the start function:

start()
{
        rm -f ${pidfile}
	${prog_dir}/rsync --daemon --config=${configfile} --log-file=${logfile}  >> ${logfile} 2>&1
}

I’m not sure about the security ramifications however. It may still be more secure to use rsync in shell mode.

Thank you for posting the ssh client. I was wondering where it was since the Dropbear SSH DroboApps is advertised as both a server and client.

If you want to use

# ssh user@server 

you may type:

# cp /bin/dbclient /bin/ssh

I would recommend making a symbolic link instead.

ln -s /bin/dbclient /bin/ssh