CentOS中rsync 檔案同步/傳輸,增量備份傳輸利器使用教程

來源:互聯網
上載者:User

安裝rsync

CentOS/Fedora/RHEL: yum install rsync
Debian/Ubuntu: apt-get install rsync

rsync使用教程

rsync有兩種工作方式:SSH和daemon。

SSH方式是使用系統上的使用者通過SSH進行同步操作。
daemon方式是rsync伺服器會開一個873連接埠,等待用戶端去串連,串連是進行驗證,通過後進行同步。
一、SSH模式下進行同步操作

rsync -options SRC DEST
SRC代表來源目錄,DEST代表目標目錄,當通過ssh連結時, 有時需要指定ssh連接埠, 請使用這個方式:rsync -options -e "ssh -p 10000" SRC DEST

下面舉例說明一下常用到的情境:

1.1:本地拷貝目錄,將/home/wwwroot/vpser/拷貝到/data/wwwroot/vpser/

rsync -avu /home/wwwroot/vpser/ /data/wwwroot/vpser/

1.2:將本地目錄拷貝到遠程伺服器

rsync -avu --progress --delete /home/wwwroot/vpser.net/ root@1.2.3.4:/home/wwwroot/vpser.net/

如果改了SSH連接埠,需要加-e "ssh -p 你的SSH連接埠",如果不想顯示具體傳輸過程可以去掉P參數,如果需要壓縮傳輸可以加z參數。

--delete 參數,這樣當本地刪除的檔案,遠程端也會刪除,保持完整的一致。

1.3:將遠程伺服器目錄拷貝到本地

rsync -avu --progress --delete root@1.2.3.4:/home/wwwroot/vpser.net/ /home/wwwroot/vpser.net/

二、daemon模式的配置

rsync daemon模式是以rsync伺服器形式運行,首先我們需要建立rsync伺服器的設定檔,設定檔:/etc/rsyncd.conf 預設此檔案可能不存在,需要自己建立,配置資訊如下:

port = 873
uid = root
gid = root
use chroot = no //使用chroot到檔案系統中的目錄中
max connections = 100 //最大並發串連數

#motd file = /etc/rsyncd.motd //定義伺服器資訊的,自己寫 rsyncd.motd 檔案內容
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log

timeout = 300

[vpser] //自訂模組
path = /home/wwwroot/vpser.net/   //用來指定要備份的目錄
ignore errors    //可以忽略一些IO錯誤
read only = no      //設定no,用戶端可以上傳檔案,yes是唯讀
write only = no   //no為用戶端可以下載,yes 不能下載
hosts allow = 192.168.2.0/24    //允許串連的IP,強烈建議加上你允許的IP,多個IP逗號隔開
list = yes   //客戶請求時,使用模組列表
auth users = vpser   //串連使用者名稱,是虛擬使用者與linux系統使用者無關,多個使用者名稱逗號隔開
secrets file = /etc/rsyncd.secrets   //驗證密碼檔案,檔案格式為:使用者名稱:密碼

寫入配置時請將上面的注釋資訊去掉,並調整裡面的相關參數。我們也提供了一個模板檔案http://soft.vpser.net/sync/rsync/rsyncd.conf 可自己下載放到/etc/下並修改相關參數。

/etc/rsyncd.secrets 檔案許可權必須是600,建立好該檔案後可以執行: chmod 600 /etc/rsyncd.secrets

注意:預設rsync伺服器並不是自動啟動的!

Debian/Ubuntu上是帶自啟動指令碼的,修改 /etc/default/rsync ,將裡面的RSYNC_ENABLE=false 改成 RSYNC_ENABLE=true 儲存就設成開機自啟動了。

CentOS上啟動指令碼都是不帶的,執行:wget http://soft.vpser.net/sync/rsync/init.d.rsync -O /etc/init.d/rsync && chmod +x /etc/init.d/rsync && chkconfig rsync on 如果不報錯的話就會開機自啟動了。

完成上面設定後,執行:/etc/init.d/rsync start 即可啟動。

測試rsync伺服器:rsync -avuP vpser@192.227.165.35::vpser /home/wwwroot/vpser.net/   進行串連測試,註:@前的vpser為自訂模組裡設定的使用者名稱,::後面的vpser為你自訂模組的名稱。

rsync使用小技巧:

1、可以用rsync快速刪除大量檔案:
建立一個空的檔案夾: mkdir /root/blank
用rsync刪除目標目錄:rsync --delete-before -a -H -v --progress --stats /root/blank/ /home/wwwroot/cache/
這樣我們要刪除的 cache目錄就會被清空了,刪除的速 度會非常快。

2、如果開啟了iptables防火牆,請將873連接埠加入防火牆允許規則。
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
iptables -I OUTPUT -p tcp --sport 873 -j ACCEPT

3、使用者可以自己根據自己的需求選擇SSH或daemon模式
配合crontab定時執行任務 自動完成同步、備份等工作。

rsync 常用參數的具體解釋如下:

-v, --verbose 詳細模式輸出
-q, --quiet 精簡輸出模式
-c, --checksum 開啟校正開關,強制對檔案傳輸進行校正
-a, --archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於-rlptgoD
-r, --recursive 對子目錄以遞迴模式處理
-b, --backup 建立備份,也就是對於目的已經存在有同樣的檔案名稱時,將老的檔案重新命名為~filename。可以使用--suffix選項來指定不同的備份檔案首碼。
-suffix=SUFFIX 定義備份檔案首碼
-u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且檔案時間晚於要備份的檔案。(不覆蓋更新的檔案)
-l, --links 保留軟鏈結
-p, --perms 保持檔案許可權
-o, --owner 保持檔案屬主資訊
-g, --group 保持檔案屬組資訊
-t, --times 保持檔案時間資訊
-e, --rsh=COMMAND 指定使用rsh、ssh方式進行資料同步
--delete 刪除那些DST中SRC沒有的檔案
--delete-excluded 同樣刪除接收端那些被該選項指定排除的檔案
--delete-after 傳輸結束以後再刪除
--ignore-errors 及時出現IO錯誤也進行刪除
--force 強制移除目錄,即使不為空白
--timeout=TIME IP逾時時間,單位為秒
--progress 顯示備份過程
-z, --compress 對備份的檔案在傳輸時進行壓縮處理
--exclude=PATTERN 指定排除不需要傳輸的檔案模式
--include=PATTERN 指定不排除而需要傳輸的檔案模式
--exclude-from=FILE 排除FILE中指定模式的檔案
--include-from=FILE 不排除FILE指定模式比對的檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.