Rsync usage in linux
data transfer

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.

Rsync installation

sudo apt-get update
 sudo apt-get install rsync

the example without ssh key pair and port default 22 

rsync -chavzP -e "ssh" root@  /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" root@  /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/* ubntu4@

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

Linux/Ubuntu cheat sheet
server commands
--> AlhadiTech