Linux rsync同步文件腳本
知識
08-01
使用rsync可以實現文件備份同步,現實的一個使用場景是,在後台上傳的模板文件,需要同步到另一台伺服器,通過別的域名地址訪問,這就需要把後台上傳的文件自動同步到對外可訪問的伺服器。
記錄一個rsync同步文件的sh腳本,作為例子:
- #!/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
- 再來一個:
- #!/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腳本文件,實現文件同步,如下:exec ( "/usr/local/bin/rsync_act_vip_xunlei_com_to_twin14419.sh" );
這樣當在後台上傳文件完成後,即可使用exec執行同步腳本把文件同步到另一台伺服器。
當然rsync還有更多的使用場景。


※上傳本地代碼到github上面,怎麼忽略node modules文件夾
※redis緩存和cookie實現Session共享
TAG:程序員小新人學習 |