Linux下rsync(本地、遠程)文件同步方式
rsync介紹
sync同步:
刷新文件系統(tǒng)緩存,強制將修改過的數(shù)據(jù)塊寫入磁盤,并且更新超級快。
一般重啟系統(tǒng)前執(zhí)行sync命令
async:將數(shù)據(jù)先緩存在緩沖區(qū),再周期性(一般是30s)的去同步到磁盤 。性能好,但是不能保證數(shù)據(jù)的安全性rsync:遠程同步,remote synchronous
rsync特點
1.可以鏡像保存整個目錄樹和文件系統(tǒng)
2.可以保留原有的權(quán)限,owner,group,時間,軟硬鏈接,文件屬性等信息
3.傳輸效率高,只比較變化的
4.支持匿名傳輸,也可以做驗證,加強安全
rsync的選項說明
-v:顯示rsync過程中詳細信息??梢允褂?quot;-vvvv"獲取更詳細信息。-P:顯示文件傳輸?shù)倪M度信息。(實際上"-P"="–partial --progress",其中的"–progress"才是顯示進度信息的)。-n --dry-run:僅測試傳輸,而不實際傳輸。常和"-vvvv"配合使用來查看rsync是如何工作的。-a --archive:歸檔模式,表示遞歸傳輸并保持文件屬性。等同于"-rtopgDl"。-r --recursive:遞歸到目錄中去。-t --times:保持mtime屬性。強烈建議任何時候都加上"-t",否則目標文件mtime會設(shè)置為系統(tǒng)時間,導(dǎo)致下次更新:檢查出mtime不同從而導(dǎo)致增量傳輸無效。-o --owner:保持owner屬性(屬主)。-g --group:保持group屬性(屬組)。-p --perms:保持perms屬性(權(quán)限,不包括特殊權(quán)限)。-D:是"–device --specials"選項的組合,即也拷貝設(shè)備文件和特殊文件。-l --links:如果文件是軟鏈接文件,則拷貝軟鏈接本身而非軟鏈接所指向的對象。-z:傳輸時進行壓縮提高效率。-R --relative:使用相對路徑。意味著將命令行中指定的全路徑而非路徑最尾部的文件名發(fā)送給服務(wù)端,包括它們的屬性。用法見下文示例。–size-only:默認算法是檢查文件大小和mtime不同的文件,使用此選項將只檢查文件大小。-u --update:僅在源mtime比目標已存在文件的mtime新時才拷貝。注意,該選項是接收端判斷的,不會影響刪除行為。-d --dirs:以不遞歸的方式拷貝目錄本身。默認遞歸時,如果源為"dir1/file1",則不會拷貝dir1目錄,使用該選項將拷貝dir1但不拷貝file1。–max-size:限制rsync傳輸?shù)淖畲笪募笮???梢允褂脝挝缓缶Y,還可以是一個小數(shù)值(例如:"–max-size=1.5m")–min-size:限制rsync傳輸?shù)淖钚∥募笮?。這可以用于禁止傳輸小文件或那些垃圾文件。–exclude:指定排除規(guī)則來排除不需要傳輸?shù)奈募?/li>–delete:以SRC為主,對DEST進行同步。多則刪之,少則補之。注意"–delete"是在接收端執(zhí)行的,所以它是在:exclude/include規(guī)則生效之后才執(zhí)行的。-b --backup:對目標上已存在的文件做一個備份,備份的文件名后默認使用"~“做后綴。–backup-dir:指定備份文件的保存路徑。不指定時默認和待備份文件保存在同一目錄下。-e:指定所要使用的遠程shell程序,默認為ssh。–port:連接daemon時使用的端口號,默認為873端口。–password-file:daemon模式時的密碼文件,可以從中讀取密碼實現(xiàn)非交互式。注意,這不是遠程shell認證的密碼,而是rsync模塊認證的密碼。-W --whole-file:rsync將不再使用增量傳輸,而是全量傳輸。在網(wǎng)絡(luò)帶寬高于磁盤帶寬時,該選項比增量傳輸更高效。–existing:要求只更新目標端已存在的文件,目標端還不存在的文件不傳輸。注意,使用相對路徑時如果上層目錄不存在也不會傳輸。–ignore-existing:要求只更新目標端不存在的文件。和”–existing"結(jié)合使用有特殊功能,見下文示例。–remove-source-files:要求刪除源端已經(jīng)成功傳輸?shù)奈募?/li>
用法
1.本地同步:
rsync -a 源目錄或文件 目標目錄或文件 例如: rsync -a /dir1/ /dir2/ #dir1下所有文件同步到dir2下
2.遠程同步:
rsync -av root@192.168.1.77:/etc/hosts /dir1/ #j將192.168.1.77服務(wù)器/etc/hosts文件拷貝到本地/dir1文件夾下
默認是需要輸入密碼才能同步,因為rsync基于ssh服務(wù)
注:免密登錄,這只密鑰對
3.將rsync作為服務(wù),進行同步(遠程服務(wù)器端進行如下配置)
創(chuàng)建配置文件:touch /etc/rsyncd.conf
編輯/etc/rsyncd.conf
[ava] #ava為模塊名 log file = /var/log/rsync.log path=/dir1 #path為同步目錄 uid = root 不設(shè)置uid和gid的話會報錯:有部分文件同步失敗,提示:`permission denied` gid = root
啟動:rsync --daemon
驗證是否啟動:
netstat -nltup | grep rsync #可以看到端口號是873
手動進行備份操作:
本地端執(zhí)行同步,從192.168.1.77同步模塊名為ava的文件到本地/tmp/目錄下:
rsync -av root@192.168.1.77::ava /tmp/
上述命令是手動實現(xiàn)備份功能,如需自動備份看下:
自動備份:
1.編寫腳本
vim rsync_ava.sh
腳本內(nèi)容:
#!/bin/bash rsync -av root@192.168.1.77::ava /tmp/ &>/dev/null
給腳本添加可執(zhí)行權(quán)限
chmod +x rsync_ava.sh
2.執(zhí)行定時任務(wù)
編寫計劃
crontab -e
03 01 * * * 腳本路徑 #每天1時3分執(zhí)行備份腳本
查詢定時計劃:
crontab -l
拓展
實時同步備份(服務(wù)端有文件改變就備份):rsync+inotify
1.安裝inotify軟件
tar xf inotify-tools-3.13.tar.gz -C /usr/src/ cd /usr/src/inotify-tools-3.13/ ./configure make make install
安裝后會產(chǎn)生兩條命令:
/usr/local/bin/inotifywait #等待 /usr/local/bin/inotifywatch #看守
2.編寫腳本實現(xiàn)同步
#!/bin/bash /usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /dir1 | while read events do rsync -a --delete /dir1 /dir2/ echo "'date +%F\ %T'出現(xiàn)事件$events" >> /var/log/rsync.log 2>&1 done
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ubuntu15.10下hadoop2.7.2的安裝與配置詳解
今天小編就為大家分享一篇關(guān)于ubuntu15.10下hadoop2.7.2的安裝與配置詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02
詳解如何在Linux中重置MySQL或者MariaDB的root密碼
本篇文章主要介紹了如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
如何解決Diffie-Hellman Key Agreement Protocol資源管理
文章主要介紹了資源管理錯誤漏洞的修復(fù)項目,特別提到Diffie-HellmanKeyAgreementProtocol是一種密鑰協(xié)商協(xié)議,該協(xié)議存在安全漏洞,文章建議在配置文件中正確寫入kexalgorithms,避免語法錯誤導(dǎo)致sshd服務(wù)無法啟動,從而無法通過SSH連接服務(wù)器2024-12-12
Linux中l(wèi)ogrotate日志輪詢操作總結(jié)
這篇文章主要給大家介紹了在Linux中l(wèi)ogrotate日志輪詢操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06
Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法
輕松配置PHP5.3.3+Apache2.2.16+MySQL5.1.49,下面是有詳細的步驟說明。2010-09-09

