需求背景是:shell
一個業務,有3臺服務器(A,B,C)作負載均衡,因爲規模過小目前並未使用專業的自動化運維工具。有新的需求時,開發同事改完代碼會把變動上傳到其中一臺服務器A上。可是其餘2臺服務器也須要作相同變動。bash
寫一個shell腳本,把A服務器上的變動代碼同步到B和C上。服務器
其中,你須要考慮到不須要同步的目錄(假若有tmp、upload、logs、caches)負載均衡
#!/bin/bash echo "該腳本將會把A機器上的/data/wwwroot/www.aaa.com目錄同步到B,C機器上"; read -p "是否要繼續?(y|n) " rs() { rsync -azP \ --exclude logs \ --exclude upload \ --exclude caches \ --exclude tmp \ www.aaa.com/ $1:/data/wwwroot/www.aaa.com/ } if [ $REPLY == 'y' -o $REPLY == 'Y' ] then echo "即將同步……" sleep 2 cd /data/wwwroot/ rs B機器ip rs C機器ip echo "同步完成。" elif [ $REPLY == 'n' -o $REPLY == 'N' ] then exit 1 else echo "請輸入字母y或者n" fi