rsync實現服務器之間同步目錄文件


一般情況下

服務環境一般有三種

  1. dev   開發環境
  2. test   測試環境
  3. prod    生產環境

環境多了,不可避免的事是一些重復的操作,部署什么的

能不能在開發環境打包后,直接同步到測試環境呢?(畢竟重復的事干的多了是會煩的)

是可以的

linux下可以直接使用rsync命令

windows下可以安裝cygwin來實現

copy一張圖片 

 這里記錄下同步到遠程服務器的操作,也就是圖上的push推

拿兩台服務器

本地:192.168.1.10

遠程:192.168.1.130

需求:將192.168.1.10的/opt/vue/index.html文件 和 /opt/vue/static目錄同步到遠程192.168.1.130的/opt/dist目錄下

操作:

rsync -avP -e "ssh -i ~/.ssh/130/my.pem" /opt/vue/static /opt/vue/index.html root@192.168.1.130:/opt/dist

參數說明

  • -a --archive  :歸檔模式,表示遞歸傳輸並保持文件屬性。等同於"-rtopgDl"
  • -v:顯示rsync過程中詳細信息。可以使用"-vvvv"獲取更詳細信息
  • -P:顯示文件傳輸的進度信息。(實際上"-P"="--partial --progress",其中的"--progress"才是顯示進度信息的)
  • my.pem文件是登錄192.168.1.130服務器的私鑰,生成方式可以查看這篇文章 ssh通過pem文件登陸服務器 

既然想實時操作,並不想每次都執行這么個腳本怎么辦

配合linux定時任務 crontab,定時執行即可

 方式:將命令寫入一腳本中,定時執行即可

cd /root

vim rsync-vue-130.sh //寫入rsync -avP -e "ssh -i ~/.ssh/130/my.pem" /opt/vue/static /opt/vue/index.html root@192.168.1.130:/opt/dist
// crontab -e 編輯定時任務,寫入,如下為每兩分鍾同步一次

*/2 * * * *  /root/rsync-vue-130.sh

如果是windows環境的話,需要安裝cygwin,這樣就會在windows平台提供了linux環境了

如圖:

安裝可以參考https://blog.csdn.net/heshushun/article/details/78664384

perfect!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM