場景:隨着業務愈來愈大,網站或者APP服務端所使用的編程語言爲PHP,須要配置lamp或者lnmp環境,還須要把代碼上傳到服務器上去。可是平時業務功能不斷增長,須要改代碼,若是有幾十臺上百臺機器,就須要一個分發系統,將每次更新的代碼發佈到新的機器上去。shell
核心shell腳本:expect,能夠實現傳輸文件,也能夠遠程執行命令編程
思路:首先要準備一臺模板機器,機器上的代碼是最新代碼(準備上線),而後要知道上線機器的IP地址,對應用戶的密碼,使用expect腳本,藉助於rsync將這些代碼推送到機器上去,還能夠經過expect去執行一些命令。服務器
首先安裝expect編程語言
自動遠程登陸網站
加入執行權限spa
執行expect腳本,成功登陸lnmp
expect "]*" ,當匹配到"]"時,執行命令模板
遠程登陸並執行命令而後退出登錄
查看執行結果配置
執行腳本
執行多條命令,用雙引號括起來