#!/bin/bash
sourcefile='/var/www/html/index.html'
remotedir='/var/www/html'
rsyncremotedir='/var/www/'
rsynclocaldir='/var/www/'
### Run Multiple Commands on Remote Host ###
while IFS= read -r dest; do
ssh -i "mynew_key.pem" $dest '
date
sudo yum install rsync
sudo chown -R ec2-user:root /var/www
sudo rm -rf /home/ec2-user/ourfile.txt
ls -ltrh /var/www/html
hostname' </dev/null
done < hosts.txt
### Transfer File to All Remote Hosts ###
#while IFS= read -r dest; do
# scp -i "mynew_key.pem" $sourcefile "$dest:$remotedir"
#done <hosts.txt
# Sync Push Local Directory to Remote Hosts Using RSYNC ###
while IFS= read -r dest; do
rsync -avz /var/www/ --delete --exclude 'stats' -e "ssh -i /home/ec2-user/mynew_key.pem" $dest:/var/www/
done <hosts.txt
# Sync Pull Remote Directory to Local Directory Using RSYNC ###
#while IFS= read -r dest; do
# rsync -avz --dry-run --delete --exclude 'stats' -e "ssh -i /home/ec2-user/mynew_key.pem" $dest:/var/www/ /var/www/
#done <hosts.txt
Very useful in syncing Apache Web Server directories to multiple hosts when running under AWS ELB