# Enabling Rsync daemon on unRAID

I used to rsync my data using a CIFS mount of the corresponding /mnt/user/share found on unRAID. I noticed that some of the files kept uploading even if they haven’t been modified. I also had issues with some long directories containing files with long filenames. After enabling rsync daemon on unRAID, all my problems went away and transfert speed was great.

Inetd provides an easy way to enable rsyncd.

## Creating rsyncd configuration

Edit /boot/config/custom/etc/rsyncd.conf

 uid             = nobody
gid             = users
use chroot      = no
max connections = 4
pid file        = /var/run/rsyncd.pid
timeout         = 3600

[mnt]
path = /mnt
comment = /mnt files


Typical rsyncd.conf have root/root for uid/guid. I prefered to stick with what is used on user shares. I had to increase the timeout from the default 600s to longer because some VMs were taking ages to upload. Please not that the rsyncd mount point is called [mnt] and limits the rsync to /mnt and below. It is easy to use rsync on the remote machine using as source or destination address such as rsync://192.168.0.1/mnt/user/PHOTOS. On the other hand you won’t be able to use rsync://192.168.0.1/boot/config/PHOTOS.

## Modify go

inetd needs to be modified to correctly start the rsyncd service. While the /etc/inetd.conf can be manually edited it is better to dynamically patch it and then kill the already running process.

  if ! grep ^rsync /etc/inetd.conf > /dev/null ; then
cat <<-EOF >> /etc/inetd.conf
rsync   stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/bin/rsync --daemon
EOF
kill -1 \${PID}
fi
cp /boot/custom/etc/rsyncd.conf /etc/rsyncd.conf


## Use rsync daemon

Reboot your unRAID to take into consideration your new settings (and make sure they are persistants).

Now rsync’ing to unRAID is a simple as:

  rsync -avz --stats --progress /mnt/mymount/ rsync://192.168.0.1/mnt/user/PHOTOS