搭建中小規模叢集之rsync資料同步備份,rsync資料同步
NFS重要問題
1、有關NFS用戶端普通使用者寫NFS的問題。
1)為什麼要普通使用者寫NFS。
2)exports加all_squash。
Rsync介紹什麼是Rsync?
Rsync是一款開源的、快速的、多功能的、可實現全量即增量的本地或遠端資料同步備份的優秀工具。Rsync軟體適用於unix、linux、windows等多種作業系統平台。
Rsync簡介
Rsync英文全稱Remote synchronization。從軟體的名稱就可以看出來,Rsync具有可使本地和遠程兩台主機之間的資料快速複製同步鏡像、遠程備份的功能,這個功能類似ssh帶的scp命令,但又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。當然,Rsync還可以在本地主機的不同分區或目錄之間全量及增量的複製資料,這又類似cp命令,但同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝。
利用rsync還可以實現刪除檔案和目錄的功能,又相當於rm命令。
一個rsync相當於scp、cp、rm,但是還優於他們每一個命令。
Rsync的特性
1、支援拷貝特殊檔案如連結檔案、裝置等。
2、可以有排除指定檔案或目錄同步的功能,相當於打包命令tar的排除功能。
3、可以做到保持原檔案或目錄的許可權、時間、軟永久連結、屬主、屬組等所有屬性均不改變-p。
4、可以實現增量同步處理,即只同步變化的資料,因此資料轉送效率很高。
5、可以使用rcp、rsh、ssh等方式來配合傳輸檔案(rsync本身不對資料加密)。
6、可以通過socket(進程方式)傳輸檔案和資料(服務端和用戶端)。
7、支援匿名或認證的進程模式傳輸,可以實現方便安全的進行資料備份及鏡像。
Rsync的企業工作情境說明兩台伺服器之間資料做定時同步cron+rsync
全網伺服器資料備份
rsync結合inotify的功能做即時的資料同步Rsync的工作方式
rsync命令是用戶端命令。
Rsync大致使用三種主要的傳輸資料的方式。
1、單個主機本地之間的資料轉送(此時類似cp命令的功能)。
2、藉助rcp、ssh等通道來傳輸資料(此時類似scp命令的功能)。
3、以守護進程(socket)的方式傳輸資料(rsync自身的重要功能)。
藉助ssh通道推送資料
源端:
目標端:
藉助ssh通道拉取資料
源端:
關鍵文法說明:
1、-avz相當於-vzrtopgD1,表示同步時檔案和目錄屬性不變。
2、-P顯示同步的過程,可以用--progress替換。
3、-e 'ssh -p 22',表示通過ssh的通道傳輸資料,-p 22可省略。
4、root@192.168.31.132:/tmp/遠端主機系統使用者、地址、路徑。
5、/tmp/本地的路徑。
Rsync命令同步參數選項
常用參數選項說明:
-v,--verbose:詳細模式輸出,傳輸時的進度等資訊。
-z,--compress:傳輸時進行壓縮以提高傳輸效率,--compress-level=NUM可按層級壓縮。
-a,--archive:歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於-rtopgDl。
-r,--recursive:對子目錄以遞迴模式,即目錄下的所有目錄都同樣傳輸,注意是小寫r。
-t,--times:保持檔案時間資訊。
-o,--owner:保持檔案屬主資訊。
-p,--perms:保持檔案許可權。
-g,--group:保持檔案屬組資訊。
-P,--progress:顯示同步的過程及傳輸時的進度等資訊。
-D,--devices:保持裝置檔案資訊。
-l,--links:保留軟連結。
-e,--rsh=COMMAND:使用的通道協議,指定替代rsh的shell程式。例如:ssh。
--exclude=PATTERN:指定排除不需要傳輸的檔案模式。
--exclude-from=file(檔案名稱所在的目錄檔案)
--bwlimit=PATE(限速) limit socket I/O bandwidth。
生產參數:-avz或者-vzrtopg。
查看rsync安裝包
啟動rsync服務
建立rsync使用者
建立共用目錄/backup
建立密碼檔案/etc/rsync.password
修改密碼檔案/etc/rsync.password的許可權
rsync server配置步驟
1、vi /etc/rsyncd.conf配置。
2、建立rsync使用者,及共用目錄/backup。
useradd rsync -s /sbin/nologin -M
id rsync
mkdir /backup
chown -R rsync /backup
3、建立密碼檔案/etc/rsync.password。
echo "使用者名稱:密碼" >/etc/rsync.password
chmod 600 /etc/rsync.password
4、啟動服務
rsync --daemon
netstat -lntup|grep rsync
ps -ef|grep rsync|grep -v grep
5、加入開機自啟動
echo "rsync --daemon" >>/etc/rc.local
cat /etc/rc.local
rsync用戶端配置步驟
1、建立密碼檔案
echo "密碼">/etc/rsync.password
chmod 600 /etc/rsync.password
2、rsync
push:
rsync -avz /tmp/ rsync_backup@192.168.31.128::backup --password-file=/etc/rsync.password
pull:
rsync -avz rsync_backup@192.168.31.128::backup /tmp/ --password-file=/etc/rsync.password
rsync -avz rsync://rsync_backup@192.168.31.128/backup /tmp/ --password-file=/etc/rsync.password
安全的最佳化:
pkill rsync #結束進程rsync
rsync --daemon --address=10.0.0.10
進程管理:
pkill 進程名
killall 進程名
kill pid(進程號)
平滑結束進程:
kill -HUP `cat /var/run/rsyncd.pid`
kill –USR2 `cat /var/run/rsyncd.pid`
Rsync服務端排錯
1、查看rsync服務組態檔路徑是否正確,正確的預設路徑為:/etc/rsyncd.conf。
2、查看設定檔裡host allow、host deny允許的ip網段是否是允許用戶端訪問的ip網段。
3、查看設定檔中path參數裡的路徑是否存在,許可權是否正確(正常應為設定檔中的UID參數對應的屬主和組)。
4、查看rsync服務是否啟動。查看命令為ps -ef|grep rsync。連接埠是否存在netstat -lnt|grep 873。
5、查看iptables防火牆和selinux是否開啟允許rsync服務通過,也可以關閉。
6、查看服務端rsync配置的密碼檔案是否為600的許可權,密碼檔案格式是否正確,正確格式:使用者名稱:密碼,檔案路徑和設定檔裡的secrect files參數對應。
7、如果是推送資料,要查看配置rsyncd.conf檔案中使用者是否對模組下目錄有可讀寫的許可權。
rsync優點
1、增量備份同步。
2、支援socket(daemon)。
3、集中備份。
rsync缺點
1、大量小檔案同步的時候比對時間較長,有的時候rsync進程會停止。
解決辦法:a、打包同步。b、drbd(檔案系統同步複製block)。
2、同步大檔案時(10G以上)會有中斷。未完整同步前是隱藏檔案,同步完成之後為正常檔案。
無差異同步:--delete(慎用),使用該參數前先備份。
用戶端rsync命令排除
排除單個文
rsync -avz --exclude=a /data1/ rsync_backup@192.168.31.128::oldboy --password-file=/etc/rsync.password
排除多個檔案
rsync -avz --exclude={a,b} /data1/ rsync_backup@192.168.31.128::oldboy --password-file=/etc/rsync.password
rsync -avz –exclude-from=paichu.log /data1/ rsync_backup@192.168.31.128::oldboy --password-file=/etc/rsync.password
定時備份案例
用scp發送到另外一台伺服器