rsync stands for "remote synchronization." It is a powerful and versatile command-line utility used for synchronizing files and directories between two locations, either on the same system or between different systems over a network. rsync is commonly used for backup and data transfer tasks, especially when you want to efficiently synchronize large amounts of data while minimizing the amount of data transferred.
sudo apt-get update
sudo apt-get install rsync
the example without ssh key pair and port default 22
rsync -chavzP -e "ssh" email@example.com:/odoo/custom/addons /home/kashif/files
Below example is getting data from a server that has ssh key and ssh port 2222
rsync -chavzP -e "ssh -i /home/ssh/id_rsa -p 2222" firstname.lastname@example.org:/odoo/odoo-server/odoo-dir/filestore /home/destination_dir
The -e option in rsync is used to specify the remote shell that rsync should use when connecting to a remote server for synchronization. It allows you to choose a different remote shell than the default, which is typically SSH (ssh).
Between two server data migration
from source server to destination server without ssh key
rsync -av -e ssh /home/uhd/test/* email@example.com:/home/ubntu4/test
if your destination server has ssh key then
Copy Public Key to Source Server
ssh-copy-id -i ~/.ssh/id_rsa.pub username@source_server_ip
Copy Public Key to Destination Server:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@destination_server_ip
Use the private key from your local machine's ~/.ssh/ directory when accessing the destination server using SSH. You do not need to copy the private key to any remote server.
rsync -chavzP-e "ssh -i /path/to/your/private/key -p ssh_port" /path/to/source/directory username@destination_server_ip:/path/to/destination/directory
if both server has different ssh port too
rsync -chavzP -e "ssh -i /path/to/your/private/key -p source_ssh_port" /path/to/source/directory username@destination_server_ip -e "ssh -p destination_ssh_port":/path/to/destination/directory