I had to move a LOT of data from an old linux server to a new one. As both systems had four disks configured as a software RAID-5, I couldn’t connect all drives to one computer. I was simply out of ports to plug the drives into. 🙂
I wanted to use rsync
, that way I could make sure that all the permissions etc. will stay intact. This was important for me, as a part of the data was from the BackupPC-directory, and BackupPC uses a special user and uses a LOT of hardlinks.
Simply copying everything with rsync wasn’t a success, the underlying SSH worked well, but the speed was by far too slow (~20MB/s). The „old“ machine wasn’t simply powerful enough to handle RAID-5, SSH and rsync with maximum performance at the same time.
Using a differenct cyper (-c arcfour
) helped a bit, but the speed was still too slow (~40MB/s). As both computers were in the same secured LAN, I figured I didn’t need the additional protection and could use the rsync itself.
In the config file and the commands below you must change „hostname“ to the name of the „server“ and the „sharename“ accordingly. If you’re using a different IP range, change this as well.
On the server (here: the old machine) I created a file „rsyncd.conf“ with the following contents:
use chroot = true hosts allow = 192.168.0.0/24 log file = /var/log/rsyncd.log log format = %h %o %f %l %b [sharename] comment = sharename path = / read only = no list = yes uid = root gid = root
And run this command on the server:
rsync --config=rsyncd.conf --daemon
On the client (here: the new, receiving machine) run this command:
rsync --delete -avPH hostname::sharename .