linux-日常運維-檔案同步工具-rsync
作用:a機器檔案傳輸到b機器,遠端備份.也可以本機到本機.
需求: 將a目錄下的資料拷貝到b目錄下去,且a一直在更新,每小時拷貝一次
可以使用此命令,rsync, 特點:實現增量拷貝
假設;如果a只更新了一個檔案,那麼在只要rsync 進行同步時,只同步更新的這個檔案
本機同步
yum install -y rsync #安裝命令
rsync -av /etc/passwd /tmp/1.txt #將/etc/passwd檔案拷貝到/tmp下且更改名稱為1.txt -av v是視覺化
遠端同步:
格式:
rsync -av 路徑 ip地址:路徑
rsync -av /tmp/1.txt [email protected]
格式介紹:
rsync [OPTION] … SRC DEST #OPTION選項,好比剛才的-av SRC 源目錄 DEST目標目錄
rsync [OPTION] … [[email protected]]host:SRC DEST
例如: rsync -av 192.168.188.128:/tmp/2.txt /tmp/1.txt #與上個例子相反,將192.168.188.128:/tmp/2.txt 這個檔案拷貝到我這個機器上
常用選項;
-a 包含-rtplgoD
-r 同步目錄時要加上,類似cp時的-r選項
-v 同步時顯示一些資訊,讓我們知道同步的過程
-l 保留軟連線 #源目錄裡面有軟連線,
-L 加上該選項後,同步軟連結時會把原始檔給同步
-p 保持檔案的許可權屬性
-o 保持檔案的屬主 #如果a拷貝到b,b有這個屬主,則顯示使用者,如果沒有這個使用者,則顯示pid
-g 保持檔案的屬組
-D 保持裝置檔案資訊
-t 保持檔案的時間屬性
--delete 刪除目標目錄中源目錄沒有的檔案 #如果a同步到b,如果b裡面有a裡面沒有的檔案,則被刪除,如果不加,則不會刪除,這樣保證檔案的一致性
--exclude 過濾指定檔案,如--exclude “logs”會把檔名包含logs的檔案或者目錄過濾掉,不同步
-P 顯示同步過程,比如速率,比-v更加詳細
-u 加上該選項後,如果目標目錄中的檔案比原始檔新,則不同步 (mtime)
-z 傳輸時壓縮 節省頻寬,加快速度
示例;
rsync -av /root/111/ /tmp/111_dest/ #將/root/111/的目錄拷貝到 /tmp下,並做改名為111_dest名稱
rsync -avL /root/111 /tmp/111_dest #a本來裡面有l,而此引數有L,這種情況時,l的含義則會被覆蓋,l會被忽略,紅款中,顯示為再次同步的檔案
rsync -avL --exclude ".txt" /root/111/ /tmp/111_dest/ # 過濾原始檔中,所有以txt結尾的,將其他檔案進行同步
可以指定多個exclude
rsync通過ssh方式同步 前提:兩個機器都裝有rsync的命令
rsync -av test1/ 192.168.133.132:/tmp/test2/
rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/ #指定對方機器的埠-e "ssh -p 22"