Transferring files to and from your Amazon EC2 instance can be made simple using Rsync, a powerful file synchronization tool. Here’s a streamlined guide to get you started.

Step-by-Step Guide
Step 1: Install Rsync on Ubuntu (if not installed)
Before using Rsync, ensure it’s installed on your local Ubuntu machine. You can install it by running:
sudo apt update sudo apt install rsync
Step 2: Copy Local Files to Remote EC2 Instance
To transfer files from your local computer to the remote EC2 instance:
rsync -e "ssh -i /path/to/cert.pem" -av /path/to/local/files ubuntu@EC2_IP_ADDRESS:/path/to/remote/directory
Replace /path/to/cert.pem with the path to your EC2 key pair file, /path/to/local/files with the source directory, and EC2_IP_ADDRESS with your EC2 instance’s IP address.
Step 3: Copy Remote Files to Local
If you want to copy files from the EC2 instance to your local system:
rsync -e "ssh -i /path/to/cert.pem" -av ubuntu@EC2_IP_ADDRESS:/path/to/remote/files /path/to/local/directory
Step 4: Exclude Specific Files During Copy
To exclude specific files when transferring:
Local:
rsync -av --exclude 'file1.txt' --exclude 'file2.txt' /source/directory /destination/directory
Remote (Amazon EC2):
rsync -e "ssh -i /path/to/cert.pem" -av --exclude 'file1.txt' --exclude 'file2.txt' /source/files ubuntu@EC2_IP_ADDRESS:/destination/files
Step 5: Exclude Directories During Copy
To exclude entire directories:
Local:
rsync -av --exclude 'dir1' --exclude 'dir2' /source/directory /destination/directory
Remote (Amazon EC2):
rsync -e "ssh -i /path/to/cert.pem" -av --exclude 'dir1' --exclude 'dir2' /source/directory ubuntu@EC2_IP_ADDRESS:/destination/directory
Step 6: Copy Using Specific File Type
Transferring files of specific types:
Local:
rsync -av --include '*.php' --include '*.html' --exclude '*' /source/directory /destination/directory
Remote (Amazon EC2):
rsync -e "ssh -i /path/to/cert.pem" -av --include '*.php' --include '*.html' --exclude '*' /source/directory ubuntu@EC2_IP_ADDRESS:/destination/directory
Step 7: Exclude Multiple Files and Folders
Create an exclusion list:
touch exclude-list.txt
Edit the list:
nano exclude-list.txt
Add the files and directories to exclude:
file1.txt file2.txt dir1/ dir2/.git dir2/.env config.php dir3/
Utilize the exclusion list during transfer:
Local:
rsync -av --exclude-from 'exclude-list.txt' /source/directory /destination/directory
Remote (Amazon EC2):
rsync -e "ssh -i /path/to/cert.pem" -av --exclude-from 'exclude-list.txt' /source/directory ubuntu@EC2_IP_ADDRESS:/destination/directory
Final Thoughts
Ensure you have the right permissions for your key file (cert.pem) and that your EC2 security group allows inbound port (22) SSH connections. Replace placeholders with your actual file paths and EC2 details before running the commands.