1.最近公司的項目在使用jenkins作自動化構建,由於jenkins在構建時是比較耗性能的,便單獨使用了一臺服務器作構建服務器。可是我的以爲這樣成本太高,單獨拿一臺服務器來構建而且該服務器配置不能太差。便想着經過在本地搭建一臺jenkins服務,作構建使用。可是這樣有一個問題,沒法使用webhooks,便選擇的輪訓構建。<font color="blue">其實可使用內網穿透的方式解決的,該實例還在學習中,也實驗成功了,因爲使用還不是特別熟悉,後期單獨寫一篇文章分享。</font>php
2.在jenkins構架時,咱們須要配置一個work目錄,如/root/jenkins/workspace/daodao_system這樣的目錄,可是咱們須要使用nginx配置項目目錄,確定是不可能配置到這個jenkins的工做目錄的。經過了解,Linux的同步命令rsync命令能夠實現文件同步。這裏指的文件同步就是將jenkins工做目錄下面的文件同步到咱們指定的目錄(如咱們nginx配置的項目目錄)。而且rsync同步命令具有,高效、帶寬消耗低、支持複製連接、設備、屬主、屬組、權限等。html
rsync是遠程(或本地)複製和同步文件最經常使用的命令。 藉助rsync命令,你能夠跨目錄,跨磁盤和跨網絡遠程與本地數據進行復制和同步。舉例來講:在兩臺Linux主機之間進行數據備份和鏡像。本文介紹在Linux主機上進行遠程和本地傳輸文件的常見用法,不須要root帳戶也能夠容許rsync。ios
1.高效地複製同步數據到對端,或者對端到本地。nginx
2.支持複製連接、設備、屬主、屬組、權限。web
3.比scp(Secure Copy)更快。rsync使用遠程更新協議( remote-update protocol ),這容許僅僅傳輸兩組文件之間的差別。對於首次傳輸,它將文件或目錄的所有內容從源複製到目標,可是從下次起,它僅將變化部分複製到目標。shell
4.rsync消耗較少的帶寬,由於它使用壓縮和解壓縮方法,同時發送和接收數據兩端。HTTP壓縮技術。centos
本演示文章的環境是centos7.0的版本,能夠直接使用。如需安裝能夠參考該文章服務器
rsync [options] 資源源目錄 目標目錄
-v : 詳細模式輸出微信
-r : 遞歸拷貝數據,可是傳輸數據時不保留時間戳和權限網絡
-a : 歸檔模式, 歸檔模式老是遞歸拷貝,並且保留符號連接、權限、屬主、屬組時間戳
-z : 壓縮傳輸
-h : human-readable
--progress: 顯示傳輸過程
--exclude=PATTERN 指定排除傳輸的文件模式
--include=PATTERN 指定須要傳輸的文件模式
--delete 同步時,刪除那些DST中有,而SRC沒有的文件
--max-size:限定傳輸文件大小的上限
--dry-run:顯示那些文件將被傳輸,並不會實際傳輸
--bwlimit:限制傳輸帶寬
-W:拷貝文件,不進行增量檢測
本地同步某個文件
[root@iZ7eetumtw8c9jZ jenkins]# rsync -zvrh remoting.jar /root/work/ sending incremental file list created directory /root/work remoting.jar sent 796.37K bytes received 68 bytes 1.59M bytes/sec total size is 872.44K speedup is 1.10
同步結果查看
[root@iZ7eetumtw8c9jZ jenkins]# ll /root/work/ total 852 -rw-r--r-- 1 root root 872440 Nov 3 20:03 remoting.jar
同步某個目錄
[root@iZ7eetumtw8c9jZ jenkins]# rsync -zvrh workspace/ /root/work/ sending incremental file list 公司服務器測試/tests/Unit/ 公司服務器測試/tests/Unit/ExampleTest.php 公司服務器測試@tmp/ sent 18.82M bytes received 7.30K bytes 7.53M bytes/sec total size is 29.87M speedup is 1.59
同步結果查看
[root@iZ7eetumtw8c9jZ jenkins]# ll /root/work/ total 868 -rw-r--r-- 1 root root 872440 Nov 3 20:03 remoting.jar drwxr-xr-x 11 root root 4096 Nov 3 20:05 公司服務器測試 drwxr-xr-x 2 root root 4096 Nov 3 20:04 公司服務器測試@tmp
同步遠程目錄
[root@tecmint]$ rsync -avz rpmpkgs/ root@192.168.0.101:/home/ root@192.168.0.101's password: sending incremental file list ./ httpd-2.2.3-82.el5.centos.i386.rpm mod_ssl-2.2.3-82.el5.centos.i386.rpm nagios-3.5.0.tar.gz nagios-plugins-1.4.16.tar.gz sent 4993369 bytes received 91 bytes 399476.80 bytes/sec total size is 4991313 speedup is 1.00
使用該命令,最吸引個人地方就是能夠實現增量同步,而不是全量同步。這樣減小帶寬的消耗,也加快了傳輸的速度。至於該命令同步的原理,能夠參考該文章
本文轉自微信公衆號 深夜有話聊 發佈!