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
Change $user
.
nano /etc/rsyncd.conf
[archive] path = /path/ comment = Archive timeout = 300 read only = false # http user if you want to have access via web #uid = 33 #gid = 33 # Run a script before and after a connection #pre-xfer exec = /root/before_script.sh #post-xfer exec = /root/after_script.sh # 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
Command
Change $DAEMONUSER
and $DAEMONHOST
.
rsync --rltogiPhv --stats /local/path rsync://$DAEMONUSER@$DAEMONHOST/archive/path/
Backup
Go to our backup tutorial.