使用rsync能夠實現文件備份同步,現實的一個使用場景是,在後臺上傳的模板文件,須要同步到另外一臺服務器,經過別的域名地址訪問,這就須要把後臺上傳的文件自動同步到對外可訪問的服務器。bash
記錄一個rsync同步文件的sh腳本,做爲例子:服務器
Vimssh
#!/bin/bash rsync -avz --password-file=/etc/rsync.msg.key /usr/local/zeus/htdocs/act.example.com vip@t11.example.net::act.vip1 --port=873 rsync -avz --password-file=/etc/rsync.msg.key /usr/local/zeus/htdocs/act.example.com vip@t12.example.net::act.vip1 --port=873 servers='t16b21 c16b181' src='/usr/local/zeus/htdocs/example.com' for server in $servers do dst="vip@${server}.sandai.net::act.vip1" rsync -avz --password-file=/etc/rsync.msg.key $src $dst --port=8873 # rsync -avz -e ssh /usr/local/zeus/htdocs/act.example.com root@$server.sandai.net:/usr/local/zeus/htdocs/ done
再來一個:函數
Vim.net
#!/bin/bash server="t16b21 c16b181" for i in $server do rsync -avz /usr/local/zeus/htdocs/images.client.example.com/ vip@$i.example.net::images.client/ --port=8873 --password-file=/etc/client.secret rsync -avz /usr/local/zeus/htdocs/images.client.example.com/ vip@$i.example.net::images.client/ --port=873 --password-file=/etc/client.secret done
在PHP中使用exec函數能夠執行sh腳本文件,實現文件同步,以下:code
PHPserver
exec ( "/usr/local/bin/rsync_act_vip_xunlei_com_to_twin14419.sh" );
這樣當在後臺上傳文件完成後,便可使用exec執行同步腳本把文件同步到另外一臺服務器。ip
固然rsync還有更多的使用場景。同步