Linux rsync遠端同步工具

2021-10-19 09:08:57 字數 2925 閱讀 3832

rsync(remote synchronize,遠端同步)是linux系統下的資料映象備份工具。使用快速增量備份工具可以遠端同步,支援本地複製,或者與其他ssh、rsync主機同步。

不同的linux發行版安裝方法不一樣(apt、rpm、yum),請自行查詢安裝方法。

rsync是在服務端(同步源)啟動乙個守護程序rsyncd,在客戶端(同步目的地)主動使用rsync命令從服務端同步檔案。

本機ip為192.168.1.1。

執行vim /etc/rsyncd.conf命令建立配置檔案,並輸入以下內容:

### 全域性配置引數

port = 873 # rsync預設埠,1024以下只有root使用者可以使用,可更改為1024以上埠

uid = root # rsyncd服務的執行使用者,預設是nobody

gid = root # rsyncd服務的執行組,預設也是nobody

use chroot

=yes

# 在傳輸前切換到指定的目錄下,並將其監禁在內

max connections = 100 # 最大併發連線數

transfer logging =

true

# 記錄傳輸日誌

log format

= %h %o %f %l %b # 設定日誌檔案格式

log file

= /var/log/rsyncd.log # 指定日誌檔案,而不把日誌傳送給syslog

pid file

= /var/run/rsyncd.pid # 指定rsyncd的pid檔案

hosts allow = 192.168.1.2 # 設定白名單,多個ip逗號隔開,只有白名單內的ip可以進行同步

timeout

= 300 # 設定超時時間

### 自定義模組,可以指定模組引數

[secrets]

path = /opt/rsync # 伺服器端同步目錄

ignore errors # 忽略io錯誤

read only = no // 設定no,客戶端可以上傳檔案,yes是唯讀

list =

yes // 客戶請求時,可以列出檔案列表,不建議開啟,會被掃瞄出rsync未授權訪問漏洞

auth users

= vpser # 虛擬使用者名稱,與linux系統使用者無關,多個使用者名稱逗號隔開

secrets file

= /etc/rsyncd.secrets # 密碼檔案,檔案格式為:使用者名稱:密碼

執行vim /etc/rsyncd.secrets命令建立密碼檔案,並輸入以下內容:

# 如果配置檔案裡面的埠為1024以下,這裡必須使用root使用者

root:test1234

rsync --daemon --config=/etc/rsyncd.conf如果修改了/etc/rsyncd.conf配置檔案,需要使用kill -9 rsync程序pid將程序rsync殺掉,並重新啟動或者直接使用service rsyncd restart重啟rysncd服務。

本機ip為192.168.1.2。

執行命令echo "test1234" > /etc/rsyncd.secrets建立密碼檔案。

客戶端的密碼檔案只需要輸入密碼即可

rsync -auv --port 873 --progress --delete --password-file=/etc/rsyncd.secrets [email protected]::secrets /opt/rsync

option選項 功能

-a 這是歸檔模式,表示以遞迴方式傳輸檔案,並保持所有屬性,它等同於-r、-l、-p、-t、-g、-o、-d 選項。-a 選項後面可以跟乙個 --no-option,表示關閉 -r、-l、-p、-t、-g、-o、-d 中的某乙個,比如-a --no-l 等同於 -r、-p、-t、-g、-o、-d 選項。

-r 表示以遞迴模式處理子目錄,它主要是針對目錄來說的,如果單獨傳乙個檔案不需要加 -r 選項,但是傳輸目錄時必須加。

-v 表示列印一些資訊,比如檔案列表、檔案數量等。

-l 表示保留軟連線。

-l 表示像對待常規檔案一樣處理軟連線。如果是 src 中有軟連線檔案,則加上該選項後,將會把軟連線指向的目標檔案複製到 dest。

-p 表示保持檔案許可權。

-o 表示保持檔案屬主資訊。

-g 表示保持檔案屬組資訊。

-d 表示保持裝置檔案資訊。

-t 表示保持檔案時間資訊。

–delete 表示刪除 dest 中 src 沒有的檔案。

–exclude=pattern 表示指定排除不需要傳輸的檔案,等號後面跟檔名,可以是萬用字元模式(如 *.txt)。

–progress 表示在同步的過程中可以看到同步的過程狀態,比如統計要同步的檔案數量、 同步的檔案傳輸速度等。

-u 表示把 dest 中比 src 還新的檔案排除掉,不會覆蓋。

-z 加上該選項,將會在傳輸過程中壓縮。

如果想要同步到服務端,只需將::secrets部分放到最後即可:

rsync -auv --port 873 --progress --delete --password-file=/etc/rsyncd.secrets /opt/rsync [email protected]::secrets

Linux rsync檔案同步

注意 實時同步可考慮使用 rsync inotify 組合生成ssh金鑰可以免密碼傳輸 伺服器到本地 rsync progvzt progress e ssh p 埠號 root 192.xx.xx.xx 檔案目錄 本機的目錄位址 本地到伺服器 rsync progvzt progress e ss...

Linux rsync增量同步方法

可以先使用 rpm qa grep rsync 檢視rsync是否已經安裝 下面說說rsyns的配置過程 一.配置伺服器端 首先編輯 etc rsyncd.conf 內容如下 uid nobody 進行備份的使用者 nobody為任何使用者 gid nobody 進行備份的組 nobody為任何組 ...

同步遠端倉庫

概述 關聯並推拉 進入本地倉庫目錄,這個目錄是已經被git init過的 cd local repo path 關聯遠端倉庫,遠端的版本資訊也一併被整合到了本地 git remote add origin git github.com git的使用者名稱 專案名.git 取消當前的遠端倉庫關聯 gi...