This is an old revision of the document!
rsync
rsync is an open source utility that provides fast incremental file transfer. rsync is freely available under the GNU General Public License.
Package
pacman -S rsync
SSH
rsync --recursive --links --times --owner --group --itemize-changes --partial --progress --human-readable --verbose --stats /local/path user@host:~/path/
From ssh to local:
rsync --recursive --links --times --owner --group --itemize-changes --partial --progress --human-readable --verbose --stats user@host:~/path/ /local/path
Short:
rsync -rltogiPhv --stats /local/path user@host:~/path/
rsync -rltogiPhv --stats user@host:~/path/ /local/path
Different port:
rsync -rltogiPhv --stats -e "ssh -p PORTNUMBER" /local/path user@host:~/path/
See what each option does - https://man.archlinux.org/man/rsync.1#OPTION_SUMMARY
Daemon
Credentials
echo "$user:$password" > /etc/rsyncd.secrets chmod 400 /etc/rsyncd.secrets
Config
nano /etc/rsyncd.conf
[archive] path = /path/ comment = Archive timeout = 300 read only = false # Security auth users = $user secrets file = /etc/rsyncd.secrets # Optional #hosts allow = 192.168.1.0/255.255.255.0
Start
systemctl enable --now rsyncd.service