#!/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