How do I rsync from 1 local Drobo to another local DroboFS?

I’ve been combing the forums and looking for a way to rsync between 2 Drobos (one 2nd Gen on a Droboshare and on DroboFS) without a computer as a mediator. I was given to understand that this is possible, but I don’t know how to make it happen.

I have successfully installed rsync on both the Droboshare and the DroboFS with the following respective rsyncd.conf files:

Droboshare:
uid = root
gid = root
pid file = /var/run/rsyncd.pid

[drobo0]
path = /mnt/DroboShares/Drobo
comment = Drobo Share
Read Only = false

[drobo1]
path = /mnt/DroboShares/Drobo1
comment = Drobo Share
Read Only = false

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

[drobofs]
path = /mnt/DroboFS/Shares/Public
comment = DroboFS Share
Read Only = false

I can use terminal to ssh to my DroboFS with:
ssh root@192.168.113

but when I try to type an rsync command, the terminal reports:

-sh: rsync: not found

Can someone tell me, step by step, what I need to do to set up a regular rsync operation between the two?

I can’t really tell from your post what you want to do (i.e., copy which files from where to where), but I can tell you that the command-line to do so goes something like this:

rsync -aviP --rsync-path="/mnt/DroboFS/Shares/DroboApps/rsync/rsync" -e ssh root@drobofs.ip.address.here:/remote/folder/path/here/ /local/folder/path/here/

(Please not that this works if the remote device is a DroboFS)

In other words, you have to tell rsync where the executable file is.

Thank you so much for responding, Ricardo!

As it happens, I was finally able to get things working by first going to the droboshare via ssh and invoking the rsync command using the full path, as you suggested.

Just so the next poor slob doesn’t run into the same consuming frustration that I did, I’ll include the steps below. These worked for me and YMMV, but please understand that the IP addresses and network names in my examples apply only to my local network setup. You will need to gather your own IPs and switch them out.

(This assumes you have DroboApps Admin installed on your device http://Your.Drobo’s.IP.Address:8080)
1.) Click the “Install DroboApps” link
2.) Install Dropbear SSH AND rsync
4.) Edit the \Droboshare\Drobo\DroboApps\rsync\rsyncd.conf to include "Read Only = false’ like so:

Droboshare:
uid = root
gid = root
pid file = /var/run/rsyncd.pid

[drobo0]
path = /mnt/DroboShares/Drobo
comment = Drobo Share
Read Only = false

5.) Restart the Droboshare again, so the settings take effect
6.) Once the device reboots and the service is running, ssh to your Droboshare or DroboFS, as appropriate (I used Terminal on a MacBook)
Remember that the default user/pass for Dropbear is either root/root or root/giveit2me. If the IP address of my Droboshare were 192.168.0.144:

Example: ssh root@192.168.0.144

7.) Once you authenticate with your password, you just need to give the full path to the rsync command, the switches you wish to apply, followed by the source you want to copy and then the destination you want to copy to.

–This copies the contents of the Drobo share point (Drobo) to the base directory of the Drobo FS (/Public):

/mnt/DroboShares/Drobo/DroboApps/rsync/rsync -havux /mnt/DroboShares/Drobo/ 192.168.0.119::drobofs/

Note:

In my case, I used the stwitches: -havux
Ricardo suggested that I use: -aviP

I’m still learning the ins and outs of what each of them do, but

-h, --help show this help screen
-a, --archive archive mode
-v, --verbose increase verbosity
-u, --update update only (don’t overwrite newer files)
-x, --one-file-system don’t cross filesystem boundaries
-I, --ignore-times
-p, --perms preserve permissions

and there’s a fairly comprehensive list of the switches and what they do at: http://www.osguides.net/common-software/83-switches-available-in-rsync.html

Actually, the options I chose are (according to the official reference at http://www.samba.org/ftp/rsync/rsync.html):

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
 -r, --recursive             recurse into directories
 -l, --links                 copy symlinks as symlinks
 -p, --perms                 preserve permissions
 -t, --times                 preserve modification times
 -g, --group                 preserve group
 -o, --owner                 preserve owner (super-user only)
 -D                          same as --devices --specials
    --devices               preserve device files (super-user only)
    --specials              preserve special files
-v, --verbose               increase verbosity
-i, --itemize-changes       output a change-summary for all updates
-P                          same as --partial --progress
    --partial               keep partially transferred files
    --progress              show progress during transfer

In other words, -aviP will produce quite a lot of output, which is nice to figure out what is happening. Otherwise, it’ll try to continue transfer from where it started whenever possible (which is good for large files).

I probably should warn you that -u may be a dangerous option if both devices do not have their clocks synced periodically. Use it with care.

Finally, the most important switch is this one:

 -n, --dry-run               perform a trial run with no changes made

Always use -n before actually trying to rsync your data. If you messed up the switches, nothing bad will happen to your data.

Awesome! Thank you, Ricardo. -aviP it shall be! (with a dry run to start!)

Considering I have the rsync daemon running on my droboshare (which holds a first (named Drobo1) and second generation Drobo (named Drobo), shouldn’t I be able to rsync files from Drobo1 to another machine on the network?

I would like to copy a directory FROM Drobo1 to an external drive plugged into the back of my airport extreme base station.

If the airport extreme base station has an ip address of 192.168.0.141 and the name of the external drive plugged into it is Ravage, I would assume that the following would work:

/mnt/DroboShares/Drobo/DroboApps/rsync/rsync -aviP /mnt/DroboShares/Drobo1/Music 192.168.0.141::Ravage/

But I end up with the following error:
rsync: failed to connect to 192.168.0.141: Connection refused (111)

Any idea how I can correctly rsync from the Drobo1 the airport disk?

Note: the error is a refused connection vs a broken pipe or “No such file or directory,” so I’m assuming that I’m hitting the right place and just need the correct credentials.

Not getting any of these:
rsync: Failed to exec ssh: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.3]
rsync: writefd_unbuffered failed to write 4 bytes [sender]: Broken pipe (32)
rsync error: error in IPC code (code 14) at io.c(1544) [sender=3.0.3]

rsync error: error in socket IO (code 10) at clientserver.c(122) [sender=3.0.3]