rsync遠程同步
- 一、rsync簡介
- 二、使用rysnc工具(進行同步備份)
- 三、案例
- (1)服務器rsync1的配置
- (2)發起端的配置
- 四、擴展
一、rsync簡介
- 工具簡介: rsync是一個開源的快速備份工具,可以在不同主機間鏡像同步整個,目錄樹,支持增量備份,保持鏈接和權限,采用優化的同步演算法,傳輸前執行壓縮,使用預異地備份,鏡像服務器等應用
- 相關:
(1)rsync是一款快速增量備份工具
(2)Remote Sync,遠程同步
(3)支持本地復制,或者與其他SSH、rsync主機同步
(4)rsync是Linux系統默認安裝的基本組件之一
(5)官方網站:http://rsync.samba.org - 服務器身份區分:
發起端: 負責發起rsync同步操作的客戶機(對同步源的檔案位置要有讀取權限)
同步源: 負責去回應來自客戶端rsync同步操作的服務器(負責提供檔案的原始位置)

二、使用rysnc工具(進行同步備份)
- 本地備份:
類似與cp命令
舉例: rsync /etc/fstab /opt (將本地檔案/etc/fstab同步到/opt目錄下) - 基本語法: rsync 選項 源位置 目標位置
- 常用選項:
-a :歸檔模式;保留檔案權限、屬性等資訊,相當于組合選項“-r|ptgoD”
-v :顯示同步的詳細程序
-H :保留硬鏈接檔案
-A :保留ACL屬性資訊
-z :傳輸時進行壓縮
--delete :洗掉目標位置有,而原始位置沒有的檔案
--checksum :根據校驗和來決定是否跳過檔案
常用同步命令:
rsync -avz 共享用戶名@共享服務器::共享模塊名 要同步到的目錄名
三、案例
| 服務器名稱 | ip地址 | 扮演角色 |
|---|---|---|
| rsync1 | 192.168.100.11 | 同步源 |
| rsync2 | 192.168.100.12 | 發起端 |
要求: 將服務器rsync1的/var/www/html目錄,用備份賬戶AAA備份到服務器rsync2上面
(1)服務器rsync1的配置
******安裝httpd,準備/var/www/html目錄
[root@rsync1 ~]# mount /dev/cdrom /media/cdrom/
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@rsync1 ~]# yum -y install httpd (使用yum安裝httpd)
,,,,,,
完畢!
[root@rsync1 ~]# echo "aaaaaaaaaaaaaa" > /var/www/html/index.html (在指定檔案夾例寫入一個新的引導檔案)
******建立/etc/rsyncd.conf組態檔
[root@rsync1 ~]# cat <<a>> /etc/rsyncd.conf
(因為/etc/rsyncd.conf中全都是以 # 號開頭的注釋行,所有直接追加內容即可)
> use chroot = yes (禁錮在源目錄)
> address = 192.168.100.11 (監聽地址,本機地址)
> port = 873 (監聽埠)
> log file = /var/log/rsyncd.log (日志檔案)
> pid file = /var/run/rsyncd.pid (pid行程檔案)
> hosts allow = 192.168.100.0/24 (允許訪問的客戶端地址)
> [aaa] (共享模塊名)
> path = /var/www/html (需要同步的實際路徑,也就是可以同步的目錄)
> comment = rsync (描述資訊,隨便寫)
> read only = yes (只讀)
> dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 (同步時不在壓縮的檔案型別)
> auth users = AAA (授權同步的賬戶)
> secrets file = /etc/rsync_users.db (賬戶所在的資料檔案)
> a
******創建備份賬戶資料檔案
[root@rsync1 ~]# echo "AAA:123.com" > /etc/rsync_users.db(寫入賬戶AAA,密碼為123.com)
[root@rsync1 ~]# chmod 600 /etc/rsync_users.db (對資料檔案進行權限保護)
******啟動rsync服務程式
[root@rsync1 ~]# rsync --daemon (啟動)
[root@rsync1 ~]# netstat -anpt | grep rsync (查看rsync服務監聽狀態,發現成功啟動)
tcp 0 0 192.168.100.11:873 0.0.0.0:* LISTEN 1311/rsync
(2)發起端的配置
******實作將rsync1上的/etc/www/html目錄中的內容同步到rsync2上的root目錄下
[root@rsync2 ~]# rsync -avz AAA@192.168.100.11::aaa /root (AAA是共享賬戶,aaa是共享模塊名,/root是指同步到root目錄下)
或者rsync -avz rsync://AAA@192.168.100.11/aaa /root (都得輸入密碼,效果一樣的)
Password: (按照提示輸入密碼)
receiving incremental file list
./
index.html
sent 46 bytes received 117 bytes 65.20 bytes/sec
total size is 15 speedup is 0.09
[root@rsync2 ~]# ll (發現已經成功同步到root目錄下)
總用量 8
-rw-------. 1 root root 1263 10月 8 17:23 anaconda-ks.cfg
-rw-r--r-- 1 root root 15 12月 21 17:59 index.html
至此rsync遠程同步完成!!!!
四、擴展
- 要求: 生產環境中需要每天的22:30分對服務器目錄做一次同步
(結合crond服務實作) - 步驟
******前置作業
[root@rsync2 ~]# echo "123.com" > pass (撰寫一個存放AAA密碼的檔案)
[root@rsync2 ~]# chmod 600 pass (降低檔案權限)
[root@rsync2 ~]# mkdir /beifen (創建一個備份目錄)
[root@rsync2 ~]# crontab -e (使用crond工具寫入備份命令)
30 22 * * * /usr/bin/rsync -az --delete --password-file=/root/pass AAA@192.168.100.11::aaa /beifen
~
保存退出
[root@rsync2 ~]# systemctl restart crond (重啟crond服務)
[root@rsync2 ~]# systemctl enable crond (設定為開機自啟)
[root@rsync2 ~]# date -s "2020-12-21 22:29" (利用date命令修改時間)
2020年 12月 21日 星期一 22:29:00 CST
[root@rsync2 ~]# date (查看當前時間,等待到22:30)
2020年 12月 21日 星期一 22:29:02 CST
[root@rsync2 ~]# date (時間到了之后,查看創建的備份目錄)
2020年 12月 21日 星期一 22:30:02 CST
[root@rsync2 ~]# ll /beifen/ (發現成功備份)
總用量 4
-rw-r--r-- 1 root root 15 12月 21 17:59 index.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238515.html
標籤:其他
下一篇:大資料的概述
